重要参考文档---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. ...
随机推荐
- 4-7 CS后台项目练习-1
1. 关于此项目 此项目是一个自营性质电商类型的项目. 当前目标是设计后台管理相关功能. 2. 关于项目的开发流程 开发项目的标准流程应该有:需求分析.可行性分析.总体设计.详细设计等. 建议课后学习 ...
- Solution -「基环树」做题记录
写的大多只是思路,比较简单的细节和证明过程就不放了,有需者自取. 基环树简介 简单说一说基环树吧.由名字扩展可得这是一类以环为基础的树(当然显然它不是树. 通常的表现形式是一棵树再加一条非树边,把图画 ...
- jdbc 12: 模糊查询
jdbc连接mysql,进行模糊查询 package com.examples.jdbc.o11_模糊查询; import com.examples.jdbc.utils.DBUtils; impor ...
- jdbc 05: 查询结果集
jdbc连接mysql,查询结果集 package com.examples.jdbc.o5_结果集查询; import java.sql.*; import java.util.ResourceBu ...
- 5.1 从C到C++
在前4章中介绍了C语言的主要内容,已经足以应付许多算法竞赛的题目了,然而能写不代表好写,有些虽然能够用C语言实现,但是使用C++写起来往往会更快,并且不容易出错 从c到c++ C语言是一门很有用的语言 ...
- 基于EasyExcel的大数据量导入并去重
源码:https://gitee.com/antia11/excel-data-import-demo 背景:客户需要每周会将上传一个 Excel 数据文件,数据量单次为 20W 以上,作为其他模块和 ...
- MD5,Des,RSA加密解密
一.加密和解密 下面先熟悉几个概念 1>对称加密:加密的key和解密的key是同一个 但是如何确保密钥安全地进行传递?秘钥的安全是一个问题 2>非对称加密:加密点的key和解密的key不是 ...
- 使用java随机生成有个性的用户名,LOL地名+水浒传,合计2808个有意思的用户名
* 随机生成用户名 * 取水浒传108好汉名字 * 取LOL地名26个,组合而成 * 一共可以生成2808个不同特色的用户名 如果你在上网的时候,用户名难取的话,这里有很多可选择的用户名,现提供100 ...
- (防坑)Alphafold 非docker 安装指南
本指南适用于Linux系统.Alphafold官方也强调尽量使用Linux系统!官方提供了docker版安装步骤. Alphafold简介: 强大的蛋白质结构预测. 开源地址:https://gith ...
- nmtui 字符界面图形模式配置
一.通过nmtui配置网络参数 Linux系统配置网络参数的方式有很多种,其中最简单最直接的方式就是直接修改网卡配置文件,但这种方式也很容易出错,比如说IPADDR.NETMASK.GATEWAY等参 ...