mysql8在centos7下的安装及远程访问和主从配置

#一、mysql安装

1,将mysql解压放到/user/local/mysql中

2,添加用户组,命名为mysql
命令:groupadd mysql

3,创建用户mysql,并指定所属用户组为mysql
命令:useradd -r -g mysql mysql

4,赋权,让用户组和用户具有操作权限
下面命令中 . 表示本级目录,一定要保证当前所在的文件夹是/usr/local/mysql
对mysql用户组赋权命令:chgrp -R mysql .
对mysql用户赋权命令:chown -R mysql .
上两条命令也可以合并为:chown -R mysql:mysql ./
5,新建mysql数据存储文件夹
命令:mkdir data

6,初始化数据库,生成默认密码
命令:bin/mysqld --initialize --user=mysql --basedir=/usradir=/usr/local/mysql/data/

运行结果:basedir=/usradir=/usr/local/mysql/data/
2018-12-22T05:24:39.603264Z 0 [Warning] [MY-011070] [Server] ‘Disablining --skip-symbolic-links (or equivalent) is the default. Consider notas it’ is deprecated and will be removed in a future release.
2018-12-22T05:24:39.603444Z 0 [System] [MY-013169] [Server] /usr/localmysqld 8.0.13) initializing of server in progress as process 27519
2018-12-22T05:24:41.891360Z 5 [Note] [MY-010454] [Server] A temporary ed for root@localhost: ePrOX&p>L52# //这是初始默认密码,一定要记住
2018-12-22T05:24:43.475923Z 0 [System] [MY-013170] [Server] /usr/localmysqld 8.0.13) initializing of server has completed

7,设置root用户权限数据库存储文件夹的用户权限
命令:chown -R root:root ./
chown -R mysql:mysql data

8,复制并修改etc/my.cnf配置文件
cp support-files/my-default.cnf /etc/my.cnf
复制过去,其实也就是空白页,一开始没有my-default.cnf这个文件,可以用touch my-default.cnf命令创建一个,并配置权限
chmod 777 ./my-default.cnf

my.cnf内容:
[mysqld] basedir = /usr/local/mysql datadir = /usr/local/mysql/data socket = /tmp/mysql.sock character-set-server=utf8 port = 3306 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES [client] socket = /tmp/mysql.sock default-character-set=utf8

9,赋权:chmod 777 /etc/my.cnf

10,设置开机自启动
命令:cp support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql

11,注册并查看服务
命令:chkconfig --add mysql
chkconfig --list mysql

mysql 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭

12,/etc/ld.so.conf 这个文件记录了编译时使用的动态链接库的路径,告诉链接器去哪个路径下寻找链接时需要用到的库,如果找不到,就会提示链接错误。

如果我们安装了第三方的库,而没有将它放在链接器可以找到的目录,则运行使用这些第三方库的程序时,会提示找不到库。

命令:vim /etc/ld.so.cnf
添加如下内容:
include ld.so.conf.d/*.conf /usr/local/mysql/lib

13,配置环境变量/etc/profile
添加以下内容:export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib
编译profile使配置文件生效:source /etc/profile

14,启动mysql:service mysql start
15,使用生成的密码登录数据库:mysql -u root -p密码(-p后面不用加空格,会直接当成密码)

16,修改密码:alter user 'root'@'localhost' identified by 'root';
exit;重新登录

安装完成

#二、下面设置MySQL的远程访问

1,登录mysql,使用mysql数据库:use mysql;

2,查询用户:select host,user from user;

执行完上面的命令后会显示一个表格

查看表格中 root 用户的 host,默认应该显示的 localhost,只支持本地访问,不允许远程访问。

3,将root用户的host修改为%,表示通配所有 host,可以远程访问:update user set host='%' where user='root'

4,刷新权限

所有操作后,应执行:flush privileges;

5,授权 root 用户的所有权限:GRANT ALL ON *.* TO 'root'@'%';

6,查看 root 用户的 host

再次执行步骤 2,你会发现 root 用户的 host 已经变成 %,说明我们的修改已经成功,可以远程访问了。

7,访问数据库

远程访问数据库的可视化工具比较多如:Navicat、SQLyog、MySQL workbench 等,我这里使用 Navicat

输入访问的 host 和密码,报 2059 错误,这是因为 MySql8.0 版本 和 5.0 的加密规则不一样,而现在的可视化工具只支持旧的加密方式。

此问题有两种方法,一种是更新 Navicat 驱动来解决此问题,另一种是将 MySQL 用户登录的加密规则修改为 mysql_native_password,第一种方法我试过了没有起作用,我这里采用第二种方法。

8,修改加密规则:ALTER USER 'root'@'%' IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER;(by后面是用户密码)

9,更新 root 用户密码:ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';(by后面是用户密码)

10,刷新权限:FLUSH PRIVILEGES;

11,要想外部能访问虚拟机内部的服务就必须开放防火墙的端口

这里mysql使用的是3306端口
命令:firewall-cmd --permanent --add-port=3306/tcp(permanent 表示设置为持久)
重启防火墙:firewall-cmd --reload
查看端口是否开放:fierwall-cmd --query-port=3306/tcp
(批量开放端口:firewall-cmd --permanent --add-port=2000-3000/tcp)

12,此时可以使用navicat等工具连接mysql。

#三、mysql主从配置

1,将mysql所在的虚拟机克隆一份,并设置为不同的ip

2,修改主数据库的/etc/my.cnf文件:vim /etc/my.cnf
修改内容:[mysqld] log_bin=master_log server_id=1
(log_bin 日志文件名称,启用日志功能,
server_id 给定mysql一个id)

3,重启mysql:service mysql restart

4,进入主数据库的客户端工具:mysql -u root -proot
使用mysql数据库:use mysql;

5,新建一个myslave用户并赋予权限

新建用户:CREATE USER 'myslave'@'从机ip' IDENTIFIED WITH mysql_native_password BY 'root';

赋权:GRANT REPLICATION SLAVE ON *.* TO 'myslave'@'从机ip'

更新 root 用户密码:ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';

刷新权限:FLUSH PRIVILEGES;

6,获取主节点当前binary log文件名和位置(position):SHOW MASTER STATUS;
在这里插入图片描述日志文件:存在于mysql安装目录/data
data文件夹xxxxx.index文件,存储日志文件在哪里.
data文件夹auto.cnf编写当前mysql的uuid

7,修改主数据库auto.conf中的uuid,不要与从数据库相同

8,重启主数据库

9,修改从数据库的my.cnf的server_id:vim /etc/my.cnf
修改内容:[mysqld] server_id=2

10,重启从数据库

11,进入从数据库的客户端工具

12,关闭slave:stop slave;

13,在从数据库中配置出master的信息

change master to master_host='主机ip',master_user='myslave',master_password='root',master_log_file='master_log.000001(前面主数据库查询到的file名,以后会自动更新)';

刷新权限:FLUSH PRIVILEGES;

14,开启slave:start slave;

15,显示slave状态:show slave status \G;
只要没有错误,说明配置成功主从关系

16,验证主从关系
a,主从服务都重新启动
b,在主数据库中新建数据库,新建表,添加数据,观察从数据库的状态

同步更新即成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值