只用作个人笔记记录,不用于教程,如有错误敬请斧正
基础安装
mysql下载地址:https://dev.mysql.com/downloads/mysql/
mysql5.7参考手册:https://dev.mysql.com/doc/refman/5.7/en/
1.目标目录下解压:
tar -zxvf mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz
2.创建数据目录:
mkdir -p /data/mysql
3.创建配置文件:
vi /usr/local/mysql/my.cnf
基础配置如下:
[mysqld]
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true
4.安装numactl:
bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
如果安装mysql出现了以上的报错信息.这是却少numactl,执行安装即可
#Centos执行
yum -y install numactl
#ubuntu执行
apt-get install numactl
5.初始化:
正常情况下建议单独为mysql添加用户组和用户,实际情况特殊需要用指定账号维护,所以没有创建
cd /usr/local/mysql/bin
./mysqld --defaults-file=/usr/local/mysql/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mcbadm --initialize
6.查看root密码:
若初始化成功,错误日志中会有密码输出
cat /data/mysql/mysql.err
7.添加service服务:
方便通过service命令启动,非必要步骤
:
编辑mysql.serever文件,确保内容路径与实际路径一致后.将文件复制到/etc/init.d/目录下
vi /usr/local/mysql/support-files/mysql.server
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
添加成功后可使用以下命令:
service mysql start; #启动
service mysql stop; #停止
service mysql restart; #重启
service mysql status; #查看状态
8.重置密码,修改root访问host:
#重置root密码
SET PASSWORD = PASSWORD('123456');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;
#修改root账号访问host
use mysql;
update user set host = '%' where user = 'root';
FLUSH PRIVILEGES;
#创建用户(非必要步骤,用于记录)
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
#给指定用户授权,若用户不存在则创建(非必要步骤,用于记录)
grant all privileges on *.* to root@"%" identified by "123456";
flush privileges;
#给指定用户修改密码(非必要步骤,用于记录)
update mysql.user set authentication_string=password('123456') where user='root' ;
flush privileges;
主从同步:
1.修改主库配置
主库my.cnf中添加如下配置后重启mysql
log-bin=mysql-bin #开启binlog
server-id=75 #id必须唯一
#-----------------选配
binlog-ignore-db=information_schema #忽略不需要同步的数据库
binlog-ignore-db=cluster
binlog-ignore-db=mysql
binlog-do-db=db01 #需要同步的数据库
binlog-do-db=db02
binlog-do-db=db03
2.创建同步账号
GRANT REPLICATION SLAVE ON *.* TO 'allowslave'@'%' IDENTIFIED BY '123456';
flush privileges;
#创建用户:allowsalve,密码为:123456,并授权。%表示任意host均可访问
3.查看主库状态:
show master status;
4.修改从库配置:
在从库my.cnf中添加如下配置后重启mysql
server-id=77
#----------------选配
log-bin=mysql-slave-bin #开启binlog以防slave后续作为其它节点的master
binlog-ignore-db=information_schema #忽略不需要同步的数据库
binlog-ignore-db=cluster
binlog-ignore-db=mysql
binlog-do-db=db01 #需要同步的数据库
binlog-do-db=db02
binlog-do-db=db03
log-slave-updates #开启log-slave-updates参数后,slave从master复制的数据会写入log-bin日志文件里
slave-skip-errors=all #自动跳过所有复制错误
slave-net-timeout=60 #从库延后同步的时间,当slave认为连接master的连接有问题时,就等待N秒,然后断开连接,重新连接master
5.连接主数据库:
CHANGE MASTER TO MASTER_HOST='192.168.122.75', MASTER_USER='allowslave', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=154;
6.从库启动slave进程:
start slave;
show slave status\G;#查看slave状态
当IO进程和SQL进程都为YES状态时,主从同步开启成功