美文网首页
Mysql 搭建手册

Mysql 搭建手册

作者: 小小的小帅 | 来源:发表于2019-06-10 11:31 被阅读0次

    Mysql安装

    介绍

    安装方法有很多这里我介绍两种,1、yum 安装mysql;2、手动安装mysql

    Mysql yum安装

    卸载已有版本

    • 查看mysql版本
      mysql -v
    1. 安装前,我们可以检测系统是否自带安装 MySQL:
      rpm -qa | grep mysql
    2. 如果你系统有安装,那可以选择进行卸载:
      rpm -e mysql  普通删除模式
      rpm -e --nodeps mysql  
      强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除
    3. 安装
      yum -y install wget
      wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
      rpm -ivh mysql-community-release-el7-5.noarch.rpm
      yum update
      yum install mysql-server
    mysql 5.7
    wget http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm
    安装mysql源
    yum localinstall mysql57-community-release-el6-7.noarch.rpm
    检查mysql源是否安装成功
    yum repolist enabled | grep "mysql.*-community.*"
    
    1. 初始化 MySQL:
      mysqld --initialize
    2. 启动 MySQL:
      systemctl start mysqld
    3. 查看 MySQL 运行状态:
      systemctl status mysqld

    Mysql 手动安装

    下载

    参考:http://www.cnblogs.com/feiye512/p/9257687.html

    1、下载

    下载地址:http://dev.mysql.com/downloads/mysql/5.6.html#downloads

    下载版本:我这里选择的5.6.33,通用版,linux下64位

    也可以直接复制64位的下载地址,通过命令下载:
    cd /usr/local/src

    wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz
    
    1. 解压
      tar -zxvf mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz
      复制解压后的mysql目录,mysql目录不要手动创建
      cp -r mysql-5.6.33-linux-glibc2.5-x86_64 /usr/local/mysql
    2. 添加用户组和用户
      添加用户组
      groupadd mysql
      添加用户mysql 到用户组mysql
      useradd -g mysql mysql
      passwd mysql
      输入密码 123456
    3. 赋用户权限
      cd /usr/local/mysql
      修改当前目录拥有者为mysql用户:执行命令
      /usr/local/mysql目录权限为mysql用户
      chown -R mysql:mysql ./
    4. 安装
      ./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data/mysql
    • 如果遇见错误如下:
    1. bash: ./vmware-install.pl: /usr/bin/perl: bad interpreter: 没有那个文件或目录
      解决方法
      yum install perl gcc kernel-devel
      yum upgrade kernel kernel-devel

    2. FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db:
      Data::Dumper
      解决方法 :安装autoconf库
      yum -y install autoconf

    3. 启动脚本
      cp support-files/mysql.server /etc/init.d/mysqld
      chmod 755 /etc/init.d/mysqld
      cp support-files/my-default.cnf /etc/my.cnf

    4. 修改启动脚本
      vi /etc/init.d/mysqld
      修改项:

    basedir=/usr/local/mysql/
    datadir=/usr/local/mysql/data/mysql
    
    1. 启动服务
      service mysqld start

    Starting MySQL. SUCCESS!

    1. 测试连接
      cd /usr/local
      ./mysql/bin/mysql -uroot
    2. 加入环境变量,编辑 /etc/profile,这样可以在任何地方用mysql命令了
      vi /etc/profile
    export PATH=$PATH:/usr/local/mysql/bin
    

    source /etc/profile

    • 测试连接
      mysql -uroot
    1. 查看运行状态
      service mysqld status
    mysql安装后
    问题一:密码登录问题
    1. 跳过密码
      mysql登录报错更新密码(ERROR 1045 (28000))
      重置密码的第一步就是跳过MySQL的密码认证过程,方法如下:
      vim /etc/my.cnf
      注:windows下修改的是my.ini
    [mysqld]
    skip-grant-tables
    
    1. 重启
      /etc/init.d/mysql restart(有些用户可能需要使用/etc/init.d/mysqld restart)
      或者service mysql restart

    2. 密码重置
      mysql -uroot
      use mysql;
      mysql> update user set password=password("root") where user="root";
      mysql> flush privileges;

    3. 然后去掉skip-grant-tables配置文件,重启即可

    问题二:修改mysql远程连接权限
    1. 创建用户用来远程连接
    mysql -uroot
    use mysql;
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
    flush privileges;     
    
    1. 查看是否成功
      查询数据库的用户(看到如下内容表示创建新用户成功了)
      SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
    2. 修改my.cnf 文件的IP限制配置
      修改配置文件
      vim /etc/my.cnf
      将bind-address = 127.0.0.1
      设置成bind-address = 0.0.0.0(设备地址)
      重新启动
      查看端口号
      Show global variables like 'port';

    Mysql主从复制

    介绍

    首先安装俩数据库,一个作为主库,一个作为从库,安装步骤如mysql手动安装.
    主从复制配置过程
    主从服务器分别作以下操作:
    版本一致
    初始化表,并在后台启动mysql
    修改root的密码
    两台mysql:192.168.101:3306 mysql:192.168.103:3306

    Mysql主从复制

    修改配置文件

    修改主服务器master:
    vi /etc/my.cnf

    [mysqld]
    log-bin=mysql-bin
    server-id=101
    sync_binlog = 1
    binlog_checksum = none
    binlog_format = mixed
    auto-increment-increment = 2
    auto-increment-offset = 1
    slave-skip-errors = all
    

    详细介绍:
    server-id=1 #数据库唯一ID,主从的标识号绝对不能重复。#[必须]
    log-bin=mysql-bin #开启bin-log,并指定文件目录和文件名前缀#[必须]
    binlog-do-db=test #需要同步的数据库。如果是多个同步库,就以此格式另写几行即可。如果不指明对某个具体库同步,就去掉此行,表示同步所有库(除了ignore忽略的库)。
    binlog-ignore-db=mysql #不同步mysql系统数据库。如果是多个不同步库,就以此格式另写几行;也可以在一行,中间逗号隔开。
    sync_binlog = 1 #确保binlog日志写入后与硬盘同步
    binlog_checksum = none #跳过现有的采用checksum的事件,mysql5.6.5以后的版本中binlog_checksum=crc32,而低版本都是binlog_checksum=none
    binlog_format = mixed #bin-log日志文件格式,设置为MIXED可以防止主键重复。
    3、修改从服务器slave:
    vi /etc/my.cnf

    [mysqld]
    log-bin=mysql-bin
    server-id=103
    sync_binlog = 1
    binlog_checksum = none
    binlog_format = mixed
    auto-increment-increment = 2
    auto-increment-offset = 2
    slave-skip-errors = all
    

    4、重启两台服务器的mysql
    /etc/init.d/mysql restart
    5、在主服务器上建立帐户并授权slave:

    mysql -uroot -proot  
    CREATE USER 'repl'@'%' IDENTIFIED BY '123456';
    grant replication slave,replication client on *.* to 'repl'@'192.168.3.%' identified by "123456";
    mysql> flush privileges;
    mysql> show grants for repl@'192.168.3.%'; 查看指定用户权限
    

    一般不用root帐号,%表示所有客户端都可能连,只要帐号,密码正确,此处可用具体客户端IP代替,如192.168.145.226,加强安全。
    6、登录主服务器的mysql,查询master的状态
    mysql>show master status;

    
     +------------------+----------+--------------+------------------+
    
     | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
    
     +------------------+----------+--------------+------------------+
    
     | mysql-bin.000002 | 318 | | |
    
     +------------------+----------+--------------+------------------+
    
     1 row in set (0.00 sec)
    

    注:执行完此步骤后不要再操作主服务器MYSQL,防止主服务器状态值变化
    flush privileges;

    配置从服务器Slave

    7、配置从服务器Slave:
    CREATE USER 'repl'@'%' IDENTIFIED BY '123456';
    mysql>change master to master_host='192.168.3.100',master_user='repl',master_password='123456', master_log_file='mysql-bin.000023',master_log_pos=191; //注意不要断开,318数字前后无单引号。
    如果运行报错:
    则运行change master to master_auto_position=0
    Mysql>start slave; //启动从服务器复制功能
    RESET SLAVE; //重置从服务器复制功能
    stop slave; //停掉从服务器复制功能

    • 检查从服务器复制功能状态
      检查从服务器复制功能状态
      mysql> show slave status\G;
     *************************** 1\. row ***************************
     Slave_IO_State: Waiting for master to send event
     Master_Host: 192.168.2.222 //主服务器地址
     Master_User: mysync //授权帐户名,尽量避免使用root
     Master_Port: 3306 //数据库端口,部分版本没有此行
     Connect_Retry: 60
     Master_Log_File: mysql-bin.000004
     Read_Master_Log_Pos: 600 //#同步读取二进制日志的位置,大于等于 
     Exec_Master_Log_Pos
     Relay_Log_File: ddte-relay-bin.000003
     Relay_Log_Pos: 251
     Relay_Master_Log_File: mysql-bin.000004
     Slave_IO_Running: Yes //此状态必须YES
     Slave_SQL_Running: Yes //此状态必须YES
    

    注:Slave_IO及Slave_SQL进程必须正常运行,即YES状态,否则都是错误的状态(如:其中一个NO均属错误)。
    以上操作过程,主从服务器配置完成。
    flush privileges;

    主主复制

    按上面操作反向即可,主主复制,最好将库锁住,仅仅允许读,以保证数据一致性;待主主同步环境部署后再解锁;
    锁住后,就不能往表里写数据,但是重启mysql服务后就会自动解锁!
    mysql> flush tables with read lock; //注意该参数设置后,如果自己同步对方数据,同步前一定要记得先解锁!

    相关文章

      网友评论

          本文标题:Mysql 搭建手册

          本文链接:https://www.haomeiwen.com/subject/yzqutctx.html