1.mysql的安装
1.1 官网下载
1.1.1查看liunx 是32位还是64位
1.1.2 从官网下载mysql的安装包
MySQL :: Download MySQL Community Server
1.2 上传
1.2.1上传服务器
上传到 /usr/local 并解压 tar -zxvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz -C ./mysql-5.7
1.3用户组
1.3.1 新增用户组
groupadd mysql (删除用户组: sudo groupdel msql)
1.3.2用户组添加用户
useradd -r -g mysql tester01
1.3.3 用户授予权限
创建文件夹data, 并授予tester01权限
1.4 mysql启动
1.4.1配置/etc/my.cnf
注:bind-address=0.0.0.0 设置MySQL绑定监听的IP地址,0.0.0.0表示监听所有IP,允许远程连接;/usr/local/mysql-5.7 设置MySQL的安装基目录;socket=/tmp/mysql.sock 设置本地连接时使用的Unix socket文件路径;symbolic-inks=0 禁用symbolic link符号链接支持;lower_case_table_names=1 表名区分大小写,设置为1表示不区分
1.4.1 初始化
进入mysql安装的bin目录下,初始化
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql-5.7 --datadir=/usr/local/mysql-5.7/data --user=tester01 --initialize
注:pTyaijnUA9+V 为初始密码
1.4.2 启动
进入/support-files目录下;运行mysql.server来启动MySQL服务
1.4.3修改密码
进入bin目录;
登录mysql: ./mysql -u root -p;
重设密码为admin: set password = password('admin');
root的密码设置为永不过期: ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
刷新: FLUSH PRIVILEGES;
1.4.4 修改访问权限
use mysql
打开root用户的远程访问权限,允许任何主机使用root用户连接MySQL数据库:update user set host = '%' where user = 'root';
FLUSH PRIVILEGES;
注:必要时,请放行端口号
1.4.5 设置开机自启
将MySQL的服务脚本创建一个符号链接到系统服务脚本目录下,文件名为mysql
ln -s /usr/local/mysql-5.7/support-files/mysql.server /etc/init.d/mysql
将MySQL的客户端程序mysql创建一个符号链接到系统命令目录/usr/bin下
ln -s /usr/local/mysql-5.7/bin/mysql /usr/bin/mysql
重启MySQL: service mysql restart
给/etc/init.d/mysql文件添加可执行权限 chmod +x /etc/init.d/mysql
将mysql服务添加为开机自动启动的服务 chkconfig --add mysql
查看服务列表 chkconfig --list
2.主从配置
2.1主配置
2.1.1 主/etc/my.cnf配置文件
2.1.2 创建slave用户
[root@master ~]# mysql -uroot -p123456 #登录数据库
mysql> CREATE USER 'slave'@'%' IDENTIFIED BY 'slave'; #创建一个用户为slave密码slave
mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%'; #设置slave用的的权限
mysql> flush privileges; #刷新数据库
注:删除用户 :drop user 'slave'@'%';
2.2 从配置
2.2.1 从/etc/my.cnf配置文件
2.2.2 指定主服务器及bin log
CREATE USER 'slave'@'%' IDENTIFIED BY 'slave';
change master to master_host='xxxx',
master_user='slave', master_password='slave',
master_port=3306, master_log_file='mysql-bin.000001', master_log_pos= 0;
flush privileges; #刷新数据库
3.相关问题
3.1 Slave failed to initialize relay log info structure from the repository, Error_code: 1872
mysql> reset slave;
mysql>change master to master_host='xxxxxxxx',
master_user='root', master_password='admin',
master_port=3306, master_log_file='mysql-bin.000005', master_log_pos= 154;
mysql> start slave;
这里出现两个YES, 同步才会正常, 错误日志可以看自己配置的路径/usr/local/mysql-5.7/mysql.err