离线mysql数据库安装
mysql二进制安装包下载,可选Linux - Generic或对应版本
下载地址
先处理配置文件,/etc/my.cnf内容,安装前放置在/etc下
1 2 3 4 5 6 7 8 9 10 11
| [client] socket=/var/lib/mysql/mysqld.sock
[mysqld] user=root basedir=/usr/local/mysql datadir=/usr/local/mysql/data socket=/var/lib/mysql/mysqld.sock log-error=/var/lib/mysql/mysql.log pid-file=/var/lib/mysql/mysqld.pid sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
|
安装
1 2 3 4 5 6 7
| tar -zxvf mysql-8.0.21-linux-glibc2.12-x86_64.tar.gz mv mysql-8.0.21-linux-glibc2.12-x86_64 /usr/local/mysql mkdir /var/lib/mysql cd /usr/local/mysql/bin ./mysqld --initialize ln -s /usr/local/mysql/bin/mysql /usr/bin ln -s /usr/local/mysql/bin/mysqldump /usr/bin
|
查看初始密码
1
| cat /var/lib/mysql/mysql.log
|
找到这一行,复制密码
1
| A temporary password is generated for root@localhost: fagaghahh@$
|
修改密码
1 2 3 4
| mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED with mysql_native_password BY 'mysql123456'; flush privileges;
|
停止并移除原 service服务(避免冲突)
1 2 3
| service mysql stop chkconfig mysql off 2>/dev/null rm -f /etc/init.d/mysql
|
创建 MySQL service 文件:
1
| vim /etc/systemd/system/mysqld.service
|
内容如下(与当前 my.cnf 路径和安装目录完全匹配):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| [Unit] Description=MySQL Server After=network.target
[Service] Type=forking User=root Group=root
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf ExecStop=/usr/local/mysql/bin/mysqladmin --defaults-file=/etc/my.cnf shutdown PIDFile=/var/lib/mysql/mysqld.pid
Restart=on-failure LimitNOFILE=65535
[Install] WantedBy=multi-user.target
|
重新加载 systemd 并启动 MySQL
1 2 3
| systemctl daemon-reexec systemctl daemon-reload systemctl start mysqld
|
mysql配置主从
主服务器mysql配置文件 /etc/my.cnf添加配置
1 2 3
| [mysqld] log-bin=mysql-bin //[必须]启用二进制日志 server-id=111 //[必须]服务器唯一ID
|
从服务器mysql配置文件 /etc/my.cnf
1 2
| [mysqld] server-id=222 //[必须]服务器唯一ID
|
两台服务器重启
在主服务器上建立帐户并授权slave:
1
| mysql>GRANT REPLICATION SLAVE ON *.* to 'mysync'@'%' identified by 'mysql123456';
|
登录主服务器的mysql,查询master的状态
1 2 3 4 5 6 7
| mysql>show master status; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000004 | 308 | | | +------------------+----------+--------------+------------------+ 1 row in set (0.00 sec)
|
配置从服务器Slave:
1 2
| mysql>change master to master_host='192.168.145.222',master_user='mysync',master_password='mysql123456',master_log_file='mysql-bin.000004',master_log_pos=308; mysql>start slave;
|
检查从服务器复制功能状态:其中的两个参数都为yes说明生效
1 2 3
| mysql> show slave status\G Slave_IO_Running: Yes //此状态必须YES Slave_SQL_Running: Yes //此状态必须YES
|