1、MySql下载地址:https://dev.mysql.com/downloads/mysql/
或直接在CentOS系统中下载,命令如下:
wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz
2、解压
tar -zxvf mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz
3、重命名
mv mysql-5.7.29-linux-glibc2.12-x86_64 mysql
4、创建数据目录
#当前目录:/usr/local/soft/mysql,即在mysql根目录创建数据目录。
mkdir data
5、创建MySQL组和mysql用户
groupadd mysql
useradd -r -g mysql mysql
5、切换当前目录所有者
chown -R mysql:mysql ./
6、初始化
执行初始化命令,会生成临时的密码,比如下图中的:“z+laMN7q%BYx”,需要记住,后续修改密码时需要用到。
#当前目录:/usr/local/soft/mysql,即在mysql根目录执行下列命令
bin/mysqld --initialize --user=mysql --basedir=/usr/local/soft/mysql --datadir=/usr/local/soft/mysql/data
7、创建RSA private key
#当前目录:/usr/local/soft/mysql,即在mysql根目录执行下列命令
bin/mysql_ssl_rsa_setup --datadir=/usr/local/soft/mysql/data
8、修改目录权限
#修改Mysql根目录拥有着为root
chown -R root:root ./
#修改data目录拥有着为mysql
chown -R mysql:mysql ./data
9、修改配置文件
官网说:从5.7.18开始不在二进制包中提供my-default.cnf文件。参考:https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html。在5.7.18版本中,使用tar.gz安装时,也就是压缩包解压出来安装这种,已经不再需要my.cnf文件也能正常运行。my.cnf文件就是把在命令行上启动MySQL时后面的参数用cnf文件配置好,那么下载启动时就不再需要在命令上加如参数。这个my.cnf文件可以是自定义位置,也可以使用如下默认的位置,只要放在默认位置,MySQL自动识别,默认位置有:/etc/my.cnf、/etc/mysql/my.cnf或SYSCONFDIR/my.cnf 等等。
cp my-default.cnf /etc/my.cnf
#或者直接创建/etc/my.cnf
#配置启动文件,当前目录:/usr/local/soft/mysql/support-files
cp mysql.server /etc/init.d/mysql
#修改启动文件参数
vim /etc/init.d/mysql
10、 启动
/etc/init.d/mysql start
#或
service mysql start
11、建立软连接
ln -s /usr/local/soft/mysql/bin/mysql /usr/bin
12、连接数据库并修改密码
mysql -hlocalhost -uroot -p
然后再输入临时密码。然后修改临时密码:
ALTER USER USER() IDENTIFIED BY '123456';
需要注意:上述命令修改的是,本地root用户的密码。
mysql> use mysql;
mysql> update user set authentication_string=password('123456') where user='root';
mysql> flush privileges;
mysql> quit
#重启mysql后生效
service mysql restart
13、修改远程连接权限
grant all privileges on *.* to 'root'@'%' identified by '123456';#其中,‘123456’表示远程连接时,root用户的密码。
flush privileges;
分别设置两台主机的主机名:
hostnamectl set-hostname master
hostnamectl set-hostname slave
1、修改mysql配置
修改/etc/my.cnf文件,添加如下配置:
[mysqld]
log-bin=mysql-bin #开启二进制日志,配置bin-log的名字
server-id=1 #设置server-id,需要在MySQL实例中全局唯一,并且大于0。
2、重启
service mysql restart
3、创建用户并授权
mysql> CREATE USER 'repl'@'192.168.1.9' IDENTIFIED BY '123456';#创建用户
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.1.9';#分配权限
mysql>flush privileges; #刷新权限
4、查看master状态
mysql> show master status;
1、修改配置文件
[mysqld]
server-id=2 #设置server-id,必须唯一
2、重启
service mysql restart
3、停掉slave线程
mysql>stop slave;
4、配置主从连接信息
执行下面SQL语句,需要主服务器主机名,登陆凭据,二进制文件的名称和位置等信息。其中,
mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.8', MASTER_USER='repl', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=1198,master_port=3306;
5、启动
mysql>start slave;
6、查看主从配置是否成功
show slave status\G
&esmp; 完成上述配置后,我们在master服务器上的数据库创建一个test数据库,这个时候,slave服务器上就会把该数据库同步,然后再在master创建一个数据库表,也会同步,然后在表中添加数据,添加的数据也会自动同步到slave中对应的表中。