服务器中安装 Mysql,并配置主从

1 安装mysql

1.1 下载mysql

wget https://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-server-5.6.39-1.el6.x86_64.rpm
wget https://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-client-5.6.39-1.el6.x86_64.rpm
wget https://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-devel-5.6.39-1.el6.x86_64.rpm
wget https://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-shared-5.6.39-1.el6.x86_64.rpm

可能会提示
-bash: wget: command not found
解决方法为安装 wget

yum install wget

如果服务器无法联网可以在本地下载以上的安装包,再用 rz 命令将安装包上传至服务器。
rz 命令yum 安装方法:

 sudo yum install lrzsz -y

1.2 检查主机上是否安装过mysql

rpm -qa | grep mysql

如果存在 mysql-libs-5.1.73-8.el6_8.x86_64
执行卸载命令

rpm -e mysql-libs-5.1.73-8.el6_8.x86_64 --nodeps

1.3 执行安装

rpm -ivh *.rpm

可能会报错

warning: MySQL-client-5.6.39-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
error: Failed dependencies:
    libnuma.so.1()(64bit) is needed by MySQL-server-5.6.39-1.el6.x86_64
    libnuma.so.1(libnuma_1.1)(64bit) is needed by MySQL-server-5.6.39-1.el6.x86_64
    libnuma.so.1(libnuma_1.2)(64bit) is needed by MySQL-server-5.6.39-1.el6.x86_64

安装numactl依赖包可以解决

yum -y install numactl

1.3.1 初始化配置

rm -rf /etc/my.cnf.d/
cp /usr/share/mysql/my-default.cnf /etc/my.cnf //这个是移动配置文件目录

1.3.2 初始化

/usr/bin/mysql_install_db

1.3.3 更改权限设置

chown mysql.mysql /var/lib/mysql -R
chmod 777 /tmp/

1.3.4 更改配置文件

编辑配置文件

    vim /etc/my.cnf

更改mysql的数据目录

mv /var/lib/mysql /data/
chmod -R 755 /data

启动mysql

/etc/init.d/mysql start

注:具体配置文件可参考2.4

1.3.5 设置权限

查看默认密码

cat /root/.mysql_secret

登陆数据库

mysql -uroot –pxxx 

注:xxx 为默认密码
登陆数据后设置密码

SET PASSWORD = PASSWORD('密码');

创建用户并赋权:
  创建用户

GRANT FILE ON *.* TO '用户名'@'登陆数据库的ip' IDENTIFIED BY '密码';

  对用户赋权

GRANT REPLICATION SLAVE ON *.* TO '用户名'@'登陆数据库的ip ' IDENTIFIED BY '密码';

或:
  创建用户并赋权

GRANT ALL PRIVILEGES ON *.* TO ' 用户名 '@'登陆数据库的ip ' IDENTIFIED BY '密码' WITH GRANT OPTION;

注:登陆数据库的ip 是指在哪个地址上登陆
重启mysql

/etc/init.d/mysql restart

到这mysql 服务器上的安装已经完成,主从配置可往下看。

2 主从配置

2.1 配置主从

登陆主数据库后:

show master status \G;
图片 1.png

对从数据库创建用户并赋权:

GRANT ALL PRIVILEGES ON *.* TO 'db_slave'@'172.%' IDENTIFIED BY 'arcvideo01' WITH GRANT OPTION;

注:172.% 是指 ip 为 172 段的主机都可以通过改用户登陆
重启主mysql

/etc/init.d/mysql restart

登陆从数据库:

stop slave;
change master to master_host='hostip',master_user='db_slave',master_password='arcvideo01',master_log_file='mysql-bin.000004',master_log_pos=120;
start slave;

注: master_host 为主数据库 ip
  为主数据用户名
  为主数据密码
  填主数据库的 File值
  master_log_pos 填主数据库的 Position 值

2.2 验证主从同步是否正常

登陆从数据库中执行:

show slave status \G;

如果以下两个显示为yes则同步正常
  Slave_IO_Running: Yes
  Slave_SQL_Running: Yes

图片 2.png

2.3 主从链接异常处理方法

2.3.1 Last_IO_Errno: 2003

Last_IO_Errno: 2003
Last_IO_Error: error connecting to master 'xx@ip:3306' - retry-time: 60  retries: 

1、 主数据库未创建用户并授权,请参照1.3.5进行创建授权
  mysql查看用户指令

show grants for 'username'@'ip';

2、 两台服务器网络不通,请用ping 指令查看
  linux ping指令

ping ip

3、 服务器端口未开放
  编辑 iptables 开放对应端口

vim /etc/sysconfig/iptables

  重启网络服务

service iptables restart

2.4 mysql 配置文件

配置文件可参考 https://www.jianshu.com/writer#/notebooks/31437967/notes/36839165

你可能感兴趣的:(服务器中安装 Mysql,并配置主从)