centos7 利用yum安装mysql8.0

本文详细介绍了如何在CentOS7.6上卸载旧版MySQL,安装MySQL8.0,包括修改密码策略,设置远程访问及端口开放,以及数据库的其他操作。同时,提到了Navicat连接MySQL8.0时可能出现的认证问题及其解决方案。
摘要由CSDN通过智能技术生成

linux版本:centos7.6

mysq版本:8.0.15

--------------------------------------------------------------------
 

卸载mysql的命令:

yum remove mysql-xxx-xxx-

删除mysql的配置文件,卸载不会自动删除配置文件,首先使用如下命令查找出所用的配置文件;

find / -name mysql

可能的显示结果如下:

  1. /etc/logrotate.d/mysql

  2. /etc/selinux/targeted/active/modules/100/mysql

  3. /etc/selinux/targeted/tmp/modules/100/mysql

  4. /var/lib/mysql

  5. /var/lib/mysql/mysql

  6. /usr/bin/mysql

  7. /usr/lib64/mysql

  8. /usr/local/mysql

根据需求使用以下命令 依次 对配置文件进行删除

rm -rf /var/lib/mysql

或

rpm -e --nodeps xxx

删除MariaDB的文件

-- 使用rpm 命令查找出要删除的mariadb文件

rpm -qa | grep mariadb

--  可能查出的文件

mariadb-libs-5.5.56-2.el7.x86_64

-- 删除上面的程序

rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64

 一、安装

1、centos的yum 源中默认是没有mysql的,所以我们需要先去官网下载mysql的repo源并安装。
在MySQL官网中下载YUM源rpm安装包:MySQL :: Download MySQL Yum Repository  

https://i-blog.csdnimg.cn/blog_migrate/543287a23dbeefb80c7eb466909fd5e8.png

也可以选择执行命令下载YUMrpm安装包:

wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm

 

2、安装 yum repo文件;

rpm -ivh mysql80-community-release-el7-11.noarch.rpm

yum localinstall mysql80-community-release-el7-1.noarch.rpm

会在/etc/yum.repos.d/目录下生成两个repo文件mysql-community.repo mysql-community-source.repo

https://img2018.cnblogs.com/blog/1440516/201904/1440516-20190406233451106-96483478.png

 3 更新yum源:

yum clean all

yum makecache

4、查看mysql yum仓库中mysql版本,使用如下命令:

yum repolist all | grep mysql

https://img2018.cnblogs.com/blog/1440516/201904/1440516-20190406233624512-416686161.png

 可以看到 MySQL 5.5 5.6 5.7为禁用状态 MySQL 8.0为启用状态;如果您不想安装mysql8.0的版本我们可以按下面操作去做,要是安装的mysql8.0版本这步可以略过。使用 yum-config-manager 命令修改相应的版本为启用状态最新版本为禁用状态:

yum-config-manager --disable mysql80-community 

yum-config-manager --enable mysql57-community

 或者可以编辑 mysql repo文件,将相应版本下的enabled改成即可:

cat /etc/yum.repos.d/mysql-community.repo

https://img2018.cnblogs.com/blog/1440516/201904/1440516-20190406233955225-49041969.png

 

5 安装mysql 命令:

yum install mysql-community-server

  开启mysql服务:

systemctl start mysqld.service

 设置开机自启:

systemctl enable mysqld.service

-- 如果开机没有启动的话就使用下面这个命令吧,反正我是没使用

systemctl daemon-reload

数据库的服务操作:

#启动mysql

systemctl start mysqld.service

 #结束

systemctl stop mysqld.service 

#重启

systemctl restart mysqld.service 

#开机自启

systemctl enable mysqld.service

6 获取初始密码登录mysql
mysql
在安装后会创建一个root@locahost账户,并且把初始的密码放到了/var/log/mysqld.log文件中;

 cat /var/log/mysqld.log | grep password  

https://img2018.cnblogs.com/blog/1440516/201904/1440516-20190406234422354-91016311.png

使用初始密码登录mysql

mysql -uroot -p

首次登陆更改密码:
ALTER USER "root"@"localhost" IDENTIFIED BY "你的新密码";

二、密码策略
1查看 mysql 初始的密码策略,

输入语句 “ SHOW VARIABLES LIKE 'validate_password%'; ” 进行查看,(如是第一次陆,则需要更改密码后才能查看)

2 设置密码的验证强度等级,设置 validate_password_policy 的全局参数为 LOW 即可,输入设值语句 “ set global validate_password_policy=LOW; ” 进行设值,


mysql8.0版本必须符合长度(默认是8位),且必须含有数字,小写或大写字母,特殊字符。因为实在我本地自己的库,所以我修改了密码最小长度和密码的策略

mysql 8.0以上 新版本账号密码策略修改和密码修改 

     老版本的密码策略变量:
        validate_password_policy 这个参数用于控制validate_password的验证策略 0-->low  1-->MEDIUM  2-->strong
  validate_password_length密码长度的最小值(这个值最小要是4)

  validate_password_number_count 密码中数字的最小个数。

  validate_password_mixed_case_count大小写的最小个数。

  validate_password_special_char_count 特殊字符的最小个数。

  validate_password_dictionary_file 字典文件

 

       8.0后要注意密码策略变量变化 

    validate_password.check_user_name ON 

    validate_password.dictionary_file 

    validate_password.length 

    validate_password.mixed_case_count 

    validate_password.number_count 

    validate_password.policy 

    validate_password.special_char_count 

  :validate_password_policy 变为validate_password.policy.

  所以

  set global validate_password_policy=0;变为 set global validate_password.policy=0 ;

  密码最小长度(4):

  set global validate_password_length=6; 变为 set global validate_password.length=4

 


 

 3、修改root的密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

三、远程设置:

1、远程设置

mysql> use mysql;

mysql> update user set host='%' where user='root';

#授权用户名的权限,赋予任何主机访问数据的权限
#本人没有执行这步

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;
 

mysql> FLUSH PRIVILEGES;

2、开放3306端口:

-- 查看已经开放的端口

firewall-cmd --list-ports 

-- 开启端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent 

命令含义: 
  –zone #作用域 

  –add-port=80/tcp #添加端口,格式为:端口/通讯协议 

  –permanent #永久生效,没有此参数重启后失效

 重启防火墙:

#重启firewall 

firewall-cmd --reload 

#停止firewall 

systemctl stop firewalld.service 

#禁止firewall开机启动 

systemctl disable firewalld.service

 

3 端口开放后就可以进行数据库连接操作了,在使用Navicat连接 Mysql 8.0.15可能会出现问题 Client does not support authentication protocol 错误解决方法:

#修改加密规则

ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;

#更新一下用户的密码

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

#刷新权限

FLUSH PRIVILEGES;

四、mysql的其他操作:

  查看数据库编码:

show variables like 'character%';

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%'

 查看单个数据库的编码设置

#方法一:
select * from information_schema.schemata where schema_name="test_character";
#方法二:
show crate database test_character;

 查看单个表的编码设置

show crate table test_character.test;

 如果编码不统一,很容易出现中文乱码,下面介绍在多个层面上修改编码设置

创建数据库时直接指定编码

create database <数据库名> character set utf8;

 修改数据库的编码

alter database <数据库名> character set utf8;

 创建表时指定编码

create table <表名> (id int(10),name varchar(20)default charset=utf8;

 修改表的编码
alter table <表名> character set utf8;

 数据库中下面的几个变量必须是uft8或是utf8mb4

character_set_client  (客户端来源数据使用的字符集)
character_set_connection     (连接层字符集)
character_set_database   (当前选中数据库的默认字符集)
character_set_results (查询结果字符集)
character_set_server (默认的内部操作字符集)

 数据库连接参数中:

characterEncoding=utf8会被自动识别为utf8mb4,也可以不加这个参数,会自动检测。

autoReconnect=true是必须加上的。

部分参数配置查询命令:

#查询mysql最大连接数设置
show global variables like 'max_conn%';
SELECT @@MAX_CONNECTIONS AS 'Max Connections';
# 查看最大链接数
show global status like 'Max_used_connections';
# 查看慢查询日志是否开启以及日志位置
show variables like 'slow_query%';
# 查看慢查询日志超时记录时间
show variables like 'long_query_time';
# 查看链接创建以及现在正在链接数
show status like 'Threads%';
# 查看数据库当前链接
show processlist;
# 查看数据库配置
show variables like '%quer%';

查看mysql版本:
select version();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值