Ubuntu20.04下安装MySQL8环境-CSDN博客

Ubuntu默认插件不支持Mysql5apt中自带Mysql8我们可以用过apt-get命令快捷下载

1.下载MySQL客户端和服务器

sudo apt-get update
sudo apt-get install mysql-server
sudo apt-get install mysql-client

2.配置MySQL

sudo  mysql_secure_installation

运行MySQL初始化安全脚本mysql_secure_installation脚本设置的东西更改root密码、移除MySQL的匿名用户、禁止root远程登录、删除test数据库和重新加载权限。除了询问是否要更改root密码时看情况是否需要更改其余的问题都可以按Y然后ENTER接受所有后续问题的默认值。使用上面的这些选项可以提高MySQL的安全。

3.测试MySQL

systemctl status mysql.service
# 或
sudo service mysql status

在这里插入图片描述

4.设置MySQL服务开机自启动

sudo service mysql enable
# 或
sudo systemctl enable mysql.service

5.修改root密码

  1. 使用sudo命令免密码进入MySQL
sudo mysql

某些博客推荐使用修改配置文件--skip-grant-tables跳过密码认证登录MySQL但我这里使用这种方法修改密码时会报错显示处于--skip-grant-tables模式下无法修改密码

  1. 尝试修改密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';	
# 123456为新密码如果配置MySQL时选择了允许远程登录将localhost改为%

由于MySQL8密码安全策略的升级此时大概率修改失败可能报错为
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

  1. 修改MySQL8默认密码安全策略

1查看数据库用户及其主机信息

mysql> SELECT user,host FROM mysql.user

在这里插入图片描述

2查看密码策略配置

mysql> SHOW VARIABLES LIKE 'validate_password%';

在这里插入图片描述

解释如下
validate_password.changed_characters_percentage允许密码中的更改字符的百分比。设置为 0表示不要求密码包含已更改的字符。
validate_password.check_user_name检查密码是否包含用户名称。设置为 ON表示要检查密码中是否包含用户名称。
validate_password.dictionary_file密码字典文件的路径。为空表示没有指定密码字典文件。
validate_password.length密码的最小长度。设置为 6表示密码必须至少包含 6 个字符。
validate_password.mixed_case_count密码中要求包含的大写字母数量。设置为 1表示密码必须包含至少 1 个大写字母。
validate_password.number_count密码中要求包含的数字数量。设置为 1表示密码必须包含至少 1 个数字。
validate_password.policy密码策略的级别。设置为 LOW表示密码策略较宽松。MySQL 提供四个级别的密码策略LOW、MEDIUM、STRONG 和 STRONGER它们分别代表不同的密码要求对应设置0、1、2、3。
validate_password.special_char_count密码中要求包含的特殊字符数量。在你的配置中它设置为 1表示密码必须包含至少 1 个特殊字符。

# 根据实际需要进行修改,如要设置密码长度为6只包含数字则进行如下设置
# 格式SET GLOBAL key = value
mysql> SET GLOBAL validate_password.length = 6;	# 最小长度6
mysql> SET GLOBAL validate_password.mixed_case_count = 0;	# 可以不包含大写字母
mysql> SET GLOBAL validate_password.special_char_count = 0;	# 可以不包含特殊字符
mysql> flush privileges;

根据需要修改完成后可以重新执行SHOW VARIABLES LIKE 'validate_password%';查看是否修改成功

3修改认证方式

mysql> select host,user,plugin from user;
# root默认为auth_socket修改为mysql_native_password
mysql> update user set plugin='mysql_native_password' where user='root';
# 立即生效
mysql> flush privileges;

4修改密码

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';	
# 123456为新密码如果配置MySQL时选择了允许远程登录将localhost改为%
# 查看3(1)执行结果
mysql> flush privileges;

5重启数据库

sudo service mysql restart

MySQL数据库基本使用

启动MySQL数据库服务

sudo service mysql start
# 或
sudo systemctl start mysql.service

重启MySQL数据库服务

sudo service mysql restart
# 或
sudo systemctl restart mysql.service

停止MySQL数据库服务

sudo service mysql stop
# 或
sudo systemctl stop mysql.service

查看MySQL运行状态

sudo service mysql status
# 或
sudo systemctl status mysql.service

设置MySQL服务开机自启动

sudo service mysql enable
# 或
sudo systemctl enable mysql.service

停止MySQL服务开机自启动

sudo service mysql disable
# 或
sudo systemctl disable mysql.service

MySQL的配置文件

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

修改MySQL密码认证方式

# auth_socket、caching_sha2_password、mysql_native_password
mysql> update user set plugin='auth_socket' where user='root';
mysql> flush privileges;

退出MySQL命令行

mysql> quit

参考博客
https://blog.csdn.net/hwx865/article/details/90287715

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: mysqlUbuntu