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,此文不讲述这个)的更多相关文章

  1. VMware workstation16 中Centos7下MySQL8.0安装过程+Navicat远程连接

    1.MySQL yum源安装 2.安装后,首次登录mysql以及密码配置3.远程登录问题(Navicat15为例) 一.CentOS7+MySQL8.0,yum源安装1.安装mysql前应卸载原有my ...

  2. Mysql、Oracle、SQLServer等数据库参考文档免费分享下载

    场景 MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统 ...

  3. 【已解决】phpMyAdmin中导入mysql数据库文件时出错:您可能正在上传很大的文件,请参考文档来寻找解决办法

    期间,用phpMyAdmin去导入90M左右的mysql数据库文件时出错: 您可能正在上传很大的文件,请参考文档来寻找解决方法. [解决过程] 1.很明显,是文件太大,无法导入.即上传文件大小有限制. ...

  4. m_Orchestrate learning system---四、多看参考文档很多事情很轻松就解决了

    m_Orchestrate learning system---四.多看参考文档很多事情很轻松就解决了 一.总结 一句话总结:多看参考文档啊 1.面包屑导航如何实现? 1 <ol class=& ...

  5. Mongoose学习参考文档——基础篇

    Mongoose学习参考文档 前言:本学习参考文档仅供参考,如有问题,师请雅正 一.快速通道 1.1 名词解释 Schema : 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力 Model ...

  6. 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/ ...

  7. oracle数据库 PSU,SPU(CPU),Bundle Patches 和 Patchsets 补丁号码快速参考 (文档 ID 1922396.1)

    数据库 PSU,SPU(CPU),Bundle Patches 和 Patchsets 补丁号码快速参考 (文档 ID 1922396.1) 文档内容   用途   详细信息   Patchsets ...

  8. 《Java开发学习大纲文档》V7.0

    <Java开发学习大纲文档>V7.0简介: 本文档是根据企业开发所需要掌握的知识点大纲进行总结汇编,是Java开发工程师必备知识体系,系统化学习针对性非常强,逻辑分析能力非常清晰;技术方面 ...

  9. [转载]正则表达式参考文档 - Regular Expression Syntax Reference.

    正则表达式参考文档 - Regular Expression Syntax Reference. [原创文章,转载请保留或注明出处:http://www.regexlab.com/zh/regref. ...

随机推荐

  1. java,捕获和抛出异常

    package Exrro; public class Test { //ctrl + alt + T快速生成异常捕捉 public static void main(String[] args) { ...

  2. e.printStackTrace() 原理的分析

    e.printStackTrace(); 先查看下源码 如图片中1所示,使用的是 PrintStreamOrWriter public void printStackTrace() { printSt ...

  3. 华为云Stack南向开放框架,帮助生态伙伴高效入云

    摘要:CloudBonder的生态社区通过一系列生态项目,解决提交叉组合.架构分层不清晰.运维界面不清晰等问题,简化对接流程,降低生态伙伴对接成本,缩短对接时间. 本文分享自华为云社区<[华为云 ...

  4. 关于 STrAduts

    \(\mathbb{No \ hay \ cosa \ mas \ feliz \ en \ el \ mundo \ que \ ver \ tu \ sonrisa \ mi \ [数据删除]}\ ...

  5. YII学习总结6(模板替换和“拼合”)

    controller\helloController.php<?php namespace app\controllers; use yii\web\Controller; class hell ...

  6. Vue路由器的hash和history两种工作模式 && Vue项目编译部署

    1 # 一.Vue路由器的两种工作模式 2 # 1.对于一个uri来说,什么是hash值? 井号及其后面的内容就是hash值. 3 # 2.hash值不会包括含在HTTP请求中,即:hash值不会带给 ...

  7. 关于hive分区,你知道多少呢?

    ​ 文末查看关键字,回复赠书 一.理论基础 1.Hive分区背景 在Hive Select查询中一般会扫描整个表内容,会消耗很多时间做没必要的工作.有时候只需要扫描表中关心的一部分数据,因此建表时引入 ...

  8. if条件控制语句和switch语句

    if条件控制语句(判断范围,在一定区间内容进行判断) if 如果(第一个条件) else if 如果(第二个条件 可以无限加) else 否则(只能有一个 上面都不满足的情况下进入) if和else ...

  9. JVM学习之 内存结构

    目录 一.引言 1.什么是JVM? 2.学习JVM有什么用 3.常见的JVM 4.学习路线 二.内存结构 1. 程序计数器 1.1 定义 1.2作用 2. 虚拟机栈 2.1定义 2.2栈内存溢出 2. ...

  10. Linux入门操作介绍

    Linux 是由unix衍生而来(小知识:mac也是使用unix核心),由全世界的程序员一起开发的开源系统.如今基于linux已经有了很多版本,我们后面使用的就是衍生版本之一的Ubuntu. Ubun ...