1.安装mysql
首先查看是否存在mysql
rpm -qa | grep -i mysql
yum -y remove mysql-libs*
依赖:
yum -y install net-tools autoconf rpm -e mariadb-libs-1:5.5.56-2.el7.x86_64 --nodeps
1.1 创建用户
groupadd mysql
useradd -r -g mysql mysql
1.2 解压
tar -xvf mysql-5.7.22-1.el7.x86_64.rpm-bundle.tar
1.3 安装client
rpm -ivh mysql-community-common-5.7.22-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-5.7.22-1.el7.x86_64.rpm rpm -ivh mysql-community-devel-5.7.22-1.el7.x86_64.rpm rpm -ivh mysql-community-client-5.7.22-1.el7.x86_64.rpm
1.4 安装server
rpm -ivh mysql-community-server-5.7.22-1.el7.x86_64.rpm
1.5 创建数据目录
mkdir -p /data/mysqldata chown mysql.mysql /data/mysqldata mkdir /var/log/mysql chown mysql.mysql /var/log/mysql
1.6 修改主服务器配置
vim /etc/my.cnf [client] port = 3306 socket = /data/mysqldata/mysqld.sock default-character-set = utf8 [mysqld_safe] socket =/data/mysqldata/mysqld.sock nice = 0 [mysqld] user = mysql pid-file = /data/mysqldata/mysqld.pid socket = /data/mysqldata/mysqld.sock port = 3306 basedir = /usr datadir = /data/mysqldata tmpdir = /tmp lc-messages-dir = /usr/share/mysql skip-external-locking max_allowed_packet = 16M thread_stack = 192K thread_cache_size = 8 max_connections = 200 query_cache_limit = 1M query_cache_size = 16M log_error = /var/log/mysql/error.log expire_logs_days = 10 max_binlog_size = 100M character-set-server=utf8 server-id = 1 log_bin = /var/log/mysql/mysql-bin.log sync_binlog=1 binlog_format=mixed lower_case_table_names = 1 innodb_buffer_pool_size=1G [mysqldump] quick quote-names max_allowed_packet = 16M [mysql] default-character-set=utf8
1.7 修改从服务器配置
vim /etc/my.cnf 在【mysqld】添加 [client] port = 3306 socket = /data/mysqldata/mysqld.sock default-character-set = utf8 [mysqld_safe] socket = /data/mysqldata/mysqld.sock nice = 0 [mysqld] user = mysql pid-file = /data/mysqldata/mysqld.pid socket = /data/mysqldata/mysqld.sock port = 3306 basedir = /usr datadir = /data/mysqldata tmpdir = /tmp lc-messages-dir = /usr/share/mysql skip-external-locking max_allowed_packet = 16M thread_stack = 192K thread_cache_size = 8 #myisam-recover = BACKUP max_connections = 200 query_cache_limit = 1M query_cache_size = 16M log_error = /var/log/mysql/error.log expire_logs_days = 10 max_binlog_size = 100M character-set-server=utf8 lower_case_table_names = 1 server-id=2 log-bin=/var/log/mysql/mysql-bin.log innodb_buffer_pool_size=1G [mysqldump] quick quote-names max_allowed_packet = 16M [mysql] default-character-set=utf8
1.8 初始化数据库
mysqld --initialize
service mysqld start
1.9 防火墙检查
firewall-cmd --state #防火墙列表 firewall-cmd --list-all #防火墙开放3306端口 firewall-cmd --permanent --add-port=3306/tcp
# 防火墙重新加载配置 firewall-cmd –reload
1.10 selinux检查(主)
# 输入命令: getenforce # 如果不是Permissive,做已下修改 setenforce 0 vim /etc/selinux/config SELINUX= Permissive
1.11 修改密码
grep 'temporary password' /var/log/mysql/error.log mysql -uroot -p'UA1zL8P9QzNJBcs1' SET PASSWORD = PASSWORD('xxxx'); show variables like 'datadir';
2. 主从搭建
2.1 登录主服务器mysql
GRANT REPLICATION SLAVE ON *.* TO 'systop'@'172.31.10.%' IDENTIFIED BY 'systop'; FLUSH TABLES WITH READ LOCK; SHOW MASTER STATUS; 记下: mysql> SHOW MASTER STATUS; +------------------+----------+--------------+------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +------------------+----------+--------------+------------------+-------------------+ | mysql-bin.000004 | 693 | | | | +------------------+----------+-----------
2.2 导出主mysql数据
mysqldump -uroot -p -P3306 --all-databases --triggers --routines --events >mysqlall.sql
2.3 解锁
UNLOCK TABLES;
2.4 将数据文件远程拷贝到从服务器
scp mysqlall.sql 192.168.X.X:/tmp/
2.5 从服务器导入数据
mysql -uroot -p -h127.0.0.1 -P3306 < /tmp/mysqlall.sql
2.6 从服务器执行
CHANGE MASTER TO MASTER_HOST='172.31.10.13', MASTER_USER='systop',MASTER_PASSWORD='systop',MASTER_LOG_FILE=' mysql-bin.000004',MASTER_LOG_POS=693;
2.7 查看同步状态
start slave;
show slave status G;
查看:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
都显示yes表示启动正常