在linux上安装mysql的方式有很多种,例如压缩包解压安装、yum安装、rpm安装(这种方式和yum差不多)等,但从安装体验来看yum安装和rpm安装最为简单,所以本文就简单讲解下基于yum的mysql安装以及主从同步配置。
一.安装mysql服务
安装服务器端:yum install mysql-server
yum install mysql-devel
安装客户端: yum install mysql
二.mysql初始化配置
上述服务安装完成后执行以下命令进行初始化配置:
/usr/bin/mysql_secure_installation
该语句执行完毕后会让你设置新密码,该密码根据自己需求进行配置,下面就安装过程中一些操作进行简单说明:
上面图片是询问用户是否删除匿名用户,匿名用户可以不需要通过账号就登录Mysql,此处推荐删除
上面图片是询问是否允许root用户可以远程登录,因为在测试环境中常常需要以root用户远程登录机器进行操作,所以此处推荐允许(注意提问语句中关键词disallow,所以选择N)
上面图片是询问是否删除test数据库,因为该数据库主要是为了测试使用,所以此处推荐删除
上面图片是询问是否重新加载权限表,此次不做推荐选择
三.服务启动
mysql初始化成功后执行下面语句启动mysql服务
service mysqld start
启动成功后可以执行下面语句登录mysql数据库
mysql -uroot -pxxx(root为登录用户,xxx为自己设置的密码)
如果密码忘记登录失败(Access denied for user (using password: YES))则按照以下步骤执行:
(一)关闭mysql服务 service mysqld stop
(二)配置免密登录 在/etc/my.cnf文件中添加下面语句:skip-grant-table
(三)重新启动mysql服务,然后登录数据库执行下面操作
mysql> use mysql;
mysql> update user set password=password('xxx') where user='root'
mysql> flush privileges; (该语句需要执行,让更改结果马上写入)
这个方法主要是修改用户密码,修改完成后注释免密登录语句重新启动和登录mysql即可
mysql登录成功后配置允许root用户从其他机器登录
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
+--------------------+
2 rows in set (0.00 sec)
mysql> use mysql;
Database changed
mysql> update user set host='%' where user='root';(该语句执行时虽然会报错,但已成功更改)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT REPLICATION SLAVE ON *.* to 'root'@'slaveIP' identified by 'xxx';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
四.配置master信息
(一)配置授权信息
mysql> GRANT REPLICATION SLAVE ON *.* to 'root'@'slaveIP' identified by 'xxx';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
(二)修改主库配置文件
log-bin=/var/lib/mysql/binlog
server-id=1
binlog-do-db = db1
binlong-ignore-db=db2
log-bin:同步日志路径及文件名,注意mysql用户需要在该路径下用于写入权限
server-id:集群内节点编号,注意每个节点编号信息不能相同
binlog-do-db:要同步的数据库
binlog-ignore-db:不同步的数据库
配置完成后重新启动mysql让配置生效,可以执行show master status查看binlog状况,如果启动失败可以查看mysql日志自行调试(默认日志路径为/var/log/mysqld.log)
binlog同步日志有三种类型:statement,mixed,row,此处不对这这三种模式做过多讲解和分析,只是简单说明如何查看和更改:
set global binlog_format=‘ROW/STATEMENT/MIXED’ 修改命令,
show variables like ‘binlog_format’ 展示命令
五.配置slave信息
(一)修改从库配置文件
server-id=2
master-host=masterIP
master-user=root
master-password=xxxx
master-port=3306
replicate-do-db=db1
在slave配置信息中,master-xx都是对master节点信息的描述,在mysql5.7+以上版本中无法通过配置文件来对这些信息需要配置,需要登录mysql客户端中执行以下语句进行更改
mysql> CHANGE MASTER TO MASTER_HOST='xxx';
mysql> CHANGE MASTER MASTER_PORT=3306,
mysql> CHANGE MASTER MASTER_USER='root,
mysql> CHANGE MASTER MASTER_PASSWORD='xxxx',
(二)启动slave进程
mysql> slave start;
启动成功后可以执行show slave status\G查看slave进程状况,如果Slave_IO_Running和Slave_SQL_Running都为yes,则说明slave启动成功,可以利用slave实现主从同步