重要参考文档---MySQL 8.0.29 使用yum方式安装,开启navicat远程连接,搭建主从,读写分离(需要使用到ProxySQL,此文不讲述这个)
yum方式安装
echo "删除系统默认或之前可能安装的其他版本的 mysql"
for i in $(rpm -qa|grep mysql);do rpm -e $i --nodeps;done
rm -rf /var/lib/mysql && rm -rf /etc/my.cnf
echo "安装Mysql8.0 的yum资源库"
yum -y localinstall https://repo.mysql.com//mysql80-community-release-el7-5.noarch.rpm
echo "安装Mysql8.0.29"
yum -y install mysql-community-server
echo "启动之前修改配置文件,增加上不区分大小写的参数"
rm -rf /etc/my.cnf
cat >> /etc/my.conf << EOF
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
character-set-client-handshake=FALSE
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4' # 注意,是英文状态下的单引号,不是中文状态下的
default_authentication_plugin=mysql_native_password
default-storage-engine=INNODB
lower_case_table_names=1
skip-name-resolve
max_connections=500
EOF
echo "启动MySQL服务器和MySQL的自动启动"
systemctl start mysqld.service
systemctl enable mysqld.service
echo "查看默认密码"
grep 'temporary password' /var/log/mysqld.log
echo "使用默认密码初次登录后, 必须要重置密码"
echo "8.0.29版本修改密码提示不符合密码复杂度,修改密码复杂度找不到密码策略,安装密码策略需要先修改密码,陷入死循环"
echo "解决办法;直接修改密码,密码设置复杂一些"
echo "第一次登录是无法修改规则的,否则会提示让你先修改密码后才能进行这种操作。为了避免进入这样的死循环。唯一办法是仿照默认密码的样式设置一个密码,这个密码要有大小写、数字和两个以上的特殊字符 。然后会提示你修改成功。"
如下修改密码规则这一步可以不用操作:
#设置强度,0是最低级别,数字越大,限制越多
mysql> set global validate_password.policy=0;
Query OK, 0 rows affected (0.00 sec)
#设置密码长度不能少于6位,然后我还用之前的那个“123456”,这次没问题啦。
mysql> set global validate_password.length=6;
Query OK, 0 rows affected (0.00 sec)
#设置真正的密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by '123456';
按照默认密码的复杂度直接使用新的复杂密码进行密码修改
# mysql -hlocalhost -uroot -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'E9M!EYjGWH%QLJzP';
mysql> flush privileges;
开启navicat远程登录的两种办法
总结:用户host类型是%
,且密码类型是:mysql_native_password
新建普通用户进行远程登录
mysql> create user 'putong_user'@'%' identified with mysql_native_password by 'iD!^^E123Yxr5$ph';
mysql> GRANT ALL ON *.* TO 'putong_user'@'%'; # 没有给别人赋权限的权限,如果需要执行这个命令:GRANT all PRIVILEGES ON *.* TO 'putong_user'@'host' IDENTIFIED BY 'iD!^^E123Yxr5$ph' WITH GRANT OPTION;
mysql> flush privileges;
直接修改权限
MySQL8新增了一种密码类型“caching_sha2_password”, 所以有些拥有这个属性的用户就是不能从远程登录,可以通过查看mysql数据库的user表获取相关信息
select host,user,plugin from mysql.user;
修改用户使用的密码类型即可解决:
update user set plugin='mysql_native_password' where user='putong_user';
root账号host的类型只允许本机进行登录,开启root远程连接需要修改host类型
mysql> update mysql.user set host='%' where user="root";
mysql> flush privileges;
mysql> select host,user,authentication_string from mysql.user;
搭建主从
主库IP:192.168.220.200
从库IP:192.168.220.201
主库操作
创建同步账号,仅限从库IP进行连接
mysql> create user 'repl'@'192.168.20.201' identified with mysql_native_password by 'iD!^^EjU#Yxr5$ph';
mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'repl'@'192.168.20.201' with grant option;
mysql> flush privileges;
注意:创建同步账号的时候需要加上 with mysql_native_password,不加的话从库开启同步后会报错:(前提是数据库配置文件中未加default_authentication_plugin=mysql_native_password)
Last_IO_Error: error connecting to master 'repl@192.168.20.200:3306' - retry-time: 60 retries: 1 message: Authentication plugin 'caching_sha2_password' reported error: Authentication requires secure connection.
注意:同步账号授权时需要加上 with grant option,不加的话从库开启同步后会报错
修改主库配置文件,在原有基础上增加如下配置,然后重启
server-id=200
log-bin=mysql-bin
binlog_format=row
expire_logs_days=7
sync_binlog=1
# 使用如下配置会存在跨库语句更新被狐狸的问题,切换到其他库进行操作test库,从库不会进行有关更新
#binlog-do-db=test # 要同步的数据库
#binlog-do-db=mysql # MySQL库是本身自带的,这个不同步的话,主从库各自维护自己的账号信息,对以后使用ProxySQL不利
#binlog-ignore-db=information_schema,performation_schema,sys # 不要同步的数据库,
# 使用如下语句跨库更新语句被忽略的问题
replicate_wild_do_table=test.% # 复制多个数据库,重复设置这个选项
replicate_wild_do_table=mysql.%
replicate_wild_ignore_table=information_schema.%,performation_schema.%,sys.% # 复制多个数据库,重复设置这个选项(经检测可以用逗号分隔写在一行)
read_only=0 #0表示开启读写,1表示关闭写
super_read_only=0
test数据库为尚未创建的库,因此验证的时候可以直接在主库上创建这个数据库,从库上就会自动同步创建该库
若要同步的数据库是主库上已经存在的数据库,因此要先在主库上导出该库数据为sql文件,然后把该sql文件在从库中导入进去 (从库未修改配置文件之前操作,避免用户权限只读)
登录主库,获取主库参数
mysql> show master status;
+------------------+----------+--------------+--------------------------------------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+--------------------------------------------------+-------------------+
| mysql-bin.000003 | 1836 | test | information_schema,performation_schema,sys,mysql | |
+------------------+----------+--------------+--------------------------------------------------+-------------------+
1 row in set (0.00 sec)
记录下 mysql-bin.000003 和 1836,从库进行同步操作需要使用这俩参数
从库操作
修改从库配置文件,在原有基础上增加如下配置,然后重启
server-id=201
log-bin=mysql-bin
binlog_format=row
expire_logs_days=7
sync_binlog=1
log_slave_updates=1 # 从主库复制数据时可以写入到从库本地的binlog日志中
relay-log=relay-log-bin #添加,开启中继日志,从主服务器上同步日志文件记录到本地
relay-log-index=server1-relay-bin.index #添加,定义中继日志文件的位置和名称
read_only=1 # 普通用户只读 #0表示开启读写,1表示关闭写
super_read_only=1 # root用户只读
replicate_do_db=test # 要同步的数据库,跟主库的binlog-do-db参数配置保持一致,多个数据库,重复设置这个选项
replicate_do_db=mysql
replicate-ignore-db=information_schema,performation_schema,sys # 不同步的数据库,跟主库的binlog-ignore-db参数配置保持一致,多个数据库,重复设置这个选项(经检测可以用逗号分隔写在一行)
登录从库,开始配置同步操作
mysql> stop slave;
mysql> CHANGE MASTER TO MASTER_HOST='192.168.20.200',
MASTER_PORT=3306,
MASTER_USER='repl',
MASTER_PASSWORD='iD!^^EjU#Yxr5$ph',
MASTER_LOG_FILE='mysql-bin.000003',
MASTER_LOG_POS=1836;
mysql> start slave;
mysql> show slave status \G
*************************** 1. row ***************************
Slave_IO_State: Waiting for source to send event
Master_Host: 192.168.20.200
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000003
Read_Master_Log_Pos: 1836
Relay_Log_File: localhost-relay-bin.000002
Relay_Log_Pos: 326
Relay_Master_Log_File: mysql-bin.000003
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: test,mysql
Replicate_Ignore_DB: information_schema,performation_schema,sys
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 1836
Relay_Log_Space: 540
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 200
Master_UUID: e794f691-d8d5-11ec-88e8-000c29b374da
Master_Info_File: mysql.slave_master_info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Replica has read all relay log; waiting for more updates
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
Replicate_Rewrite_DB:
Channel_Name:
Master_TLS_Version:
Master_public_key_path:
Get_master_public_key: 0
Network_Namespace:
1 row in set, 1 warning (0.00 sec)
重要参考文档---MySQL 8.0.29 使用yum方式安装,开启navicat远程连接,搭建主从,读写分离(需要使用到ProxySQL,此文不讲述这个)的更多相关文章
- VMware workstation16 中Centos7下MySQL8.0安装过程+Navicat远程连接
1.MySQL yum源安装 2.安装后,首次登录mysql以及密码配置3.远程登录问题(Navicat15为例) 一.CentOS7+MySQL8.0,yum源安装1.安装mysql前应卸载原有my ...
- Mysql、Oracle、SQLServer等数据库参考文档免费分享下载
场景 MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统 ...
- 【已解决】phpMyAdmin中导入mysql数据库文件时出错:您可能正在上传很大的文件,请参考文档来寻找解决办法
期间,用phpMyAdmin去导入90M左右的mysql数据库文件时出错: 您可能正在上传很大的文件,请参考文档来寻找解决方法. [解决过程] 1.很明显,是文件太大,无法导入.即上传文件大小有限制. ...
- m_Orchestrate learning system---四、多看参考文档很多事情很轻松就解决了
m_Orchestrate learning system---四.多看参考文档很多事情很轻松就解决了 一.总结 一句话总结:多看参考文档啊 1.面包屑导航如何实现? 1 <ol class=& ...
- Mongoose学习参考文档——基础篇
Mongoose学习参考文档 前言:本学习参考文档仅供参考,如有问题,师请雅正 一.快速通道 1.1 名词解释 Schema : 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力 Model ...
- css参考文档; 官方英文说明!! 1 margin padding 百分比参照物 2 margin值为auto时的说明 3 div在div里垂直居中方法 4 dispaly:flex说明
css参考文档 http://css.doyoe.com/ 两篇很好的文章:(下面的css官方英文说明链接 有时间可以研究下 http://www.w3.org/TR/css3-box/ ...
- oracle数据库 PSU,SPU(CPU),Bundle Patches 和 Patchsets 补丁号码快速参考 (文档 ID 1922396.1)
数据库 PSU,SPU(CPU),Bundle Patches 和 Patchsets 补丁号码快速参考 (文档 ID 1922396.1) 文档内容 用途 详细信息 Patchsets ...
- 《Java开发学习大纲文档》V7.0
<Java开发学习大纲文档>V7.0简介: 本文档是根据企业开发所需要掌握的知识点大纲进行总结汇编,是Java开发工程师必备知识体系,系统化学习针对性非常强,逻辑分析能力非常清晰;技术方面 ...
- [转载]正则表达式参考文档 - Regular Expression Syntax Reference.
正则表达式参考文档 - Regular Expression Syntax Reference. [原创文章,转载请保留或注明出处:http://www.regexlab.com/zh/regref. ...
随机推荐
- TypeScript 接口继承
1.TypeScript 接口继承 和类一样,接口也可以通过关键字 extents 相互继承.接口继承,分为:单继承和多继承,即继承多个接口.另外,接口也可以继承类,它会继承类的成员,但不包括具体的实 ...
- 洛谷P2709 小B的询问 莫队做法
题干 这个是用来学莫队的例题,洛谷详解 需要注意的一点,一定要分块!不然会慢很多(直接TLE) 其中分块只在排序的时候要用,并且是给问题右端点分块 再就是注意add与del函数里的操作,增加数量不提, ...
- 从傅里叶级数(Fourier series)到离散傅里叶变换(Discrete Fourier transform)
从傅里叶级数(Fourier series)到离散傅里叶变换(Discrete Fourier transform) 一. 傅里叶级数(FS) 首先从最直观的开始,我们有一个信号\(x(t)\)(满足 ...
- 5-16 Docker 容器 || Linux
Docker 简介 Linux简介 Linux和windows一样,都是操作系统 只不过windows更易用,适合家庭和非编程人员使用 如果用作服务器,尤其是java项目的服务器,Linux会更加合适 ...
- 总结几个简单好用的Python人脸识别算法
原文连接:https://mp.weixin.qq.com/s/3BgDld9hILPLCIlyysZs6Q 哈喽,大家好. 今天给大家总结几个简单.好用的人脸识别算法. 人脸识别是计算机视觉中比较常 ...
- Template -「高斯消元」
#include <cstdio> #include <vector> #include <algorithm> using namespace std; doub ...
- cookie和seesion的区别和联系
今天来聊聊cookie和session的区别和联系.首先先确定一个各自的定义吧: cookies: 网站用于鉴别用户身份和追踪用户登录状态. 存在于浏览器端的一小段文本数据 session: 中文称之 ...
- 搞懂前端二进制系列(一):🍇 认识Blob对象
参考资料: https://juejin.cn/post/6844904183661854727 [你不知道的Blob] https://juejin.cn/post/6844904144453517 ...
- super和访问权限修饰符
super()方法 构造方法中的super关键字 在java子类的构造方法中可以通过super关键字来调用父类的构造方法 super():访问父类中的无参构造函数 super(...)访问父类中的成员 ...
- websocket心跳实现
简介 在实际项目中可能会使用到websocket,在使用过程中可能会存在一种问题就是,当网络异常断开时.或者websocket服务波动时,websocket会断开,导致异常,正常情况下,我们会采用心跳 ...