Linux安装MySQL (centos7.9安装MySQL8.0)

发布于:2022-12-22 ⋅ 阅读:(684) ⋅ 点赞:(0)

一、安装之前检测系统是否有自带的MySQL

1.#检查是否安装过MySQL

rpm -qa | grep mysql

结果如下:

mysql80-community-release-el7-1.noarch
mysql-community-server-8.0.11-1.el7.x86_64
mysql-community-common-8.0.11-1.el7.x86_64
mysql-community-libs-8.0.11-1.el7.x86_64
mysql-community-client-8.0.11-1.el7.x86_64

# 卸载mysql的命令:

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

find / -name mysql
可能的显示结果如下:

/var/lib/mysql

/var/lib/mysql/mysql

/usr/bin/mysql

/usr/lib64/mysql

/usr/local/mysql

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

rm  /var/lib/mysql

rm  /var/lib/mysql/mysql

rm  /usr/bin/mysql

rm  /usr/lib64/mysql

rm /usr/local/mysql

或使用强制删除     rpm -e --nodeps xxx

2.#检查是否存在 mariadb 数据库(内置的MySQL数据库),有则强制删除

rpm -qa | grep mariadb

rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64 #强制删除

rpm -e --nodeps mariadb-5.5.68-1.el7.x86_64 #强制删除

二、安装

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

MySQL :: Download MySQL Yum Repository

也可以选择执行命令下载YUM源rpm安装包:

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

2. 安装MySQL源;

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

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

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

3. 检查MySQL源是否安装成功

yum repolist enabled | grep "mysql.*-community.*"

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

yum repolist all | grep mysql

可以看到 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改成 1 即可:

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

5. 有了MySQL源后安装MySQL

yum install mysql-community-server

输入确认继续安装

6. 安装报错,提示无公共秘钥

解决方法:

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

然后再次安装

7. 查看是否安装成功

yum list installed mysql-*

8. 开启mysql服务:

systemctl start mysqld.service

# 检查MySQL运行状态

systemctl status mysqld

9. 设置开机自启:

systemctl enable mysqld.service

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

systemctl daemon-reload

# 结束

systemctl stop mysqld.service

# 重启

systemctl restart mysqld.service

10. 获取初始密码

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

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

# 使用初始密码登录mysql

mysql -uroot -p

# 首次登陆更改密码:

ALTER USER "root"@"localhost" IDENTIFIED BY "MySQL@123";

PS:MySQL默认的密码复杂度为 MEDIUM,所以新密码至少为8位,并且必须包含大、小写字母、数字和特殊字符

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

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

2、 设置密码的验证强度等级,设置 validate_password_policy 的全局参数为 LOW 即可,

输入设值语句 “ set global validate_password.policy=LOW; ” 进行设值,
##mysql8.0版本必须符合长度(默认是8位),且必须含有数字,小写或大写字母,特殊字符。因为实在我本地自己的库,所以我修改了密码最小长度和密码的策略

老版本的密码策略变量:

        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 '1234';

FLUSH PRIVILEGES;

##远程设置:

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;


网站公告

今日签到

点亮在社区的每一天
去签到