• Ubuntu20.04下安装MySQL8环境


    安装环境
    Ubuntu20.04

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

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

    sudo apt-get update
    sudo apt-get install mysql-server
    sudo apt-get install mysql-client
    
    • 1
    • 2
    • 3

    2.配置MySQL

    sudo  mysql_secure_installation
    
    • 1

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

    3.测试MySQL

    systemctl status mysql.service
    # 或
    sudo service mysql status
    
    • 1
    • 2
    • 3

    在这里插入图片描述

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

    sudo service mysql enable
    # 或
    sudo systemctl enable mysql.service
    
    • 1
    • 2
    • 3

    5.修改root密码

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

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

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

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

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

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

    mysql> SELECT user,host FROM mysql.user
    
    • 1

    在这里插入图片描述

    (2)查看密码策略配置

    mysql> SHOW VARIABLES LIKE 'validate_password%';
    
    • 1

    在这里插入图片描述

    解释如下:
    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;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    根据需要修改完成后,可以重新执行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;
    
    • 1
    • 2
    • 3
    • 4
    • 5

    (4)修改密码

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

    (5)重启数据库

    sudo service mysql restart
    
    • 1

    MySQL数据库基本使用

    启动MySQL数据库服务

    sudo service mysql start
    # 或
    sudo systemctl start mysql.service
    
    • 1
    • 2
    • 3

    重启MySQL数据库服务

    sudo service mysql restart
    # 或
    sudo systemctl restart mysql.service
    
    • 1
    • 2
    • 3

    停止MySQL数据库服务

    sudo service mysql stop
    # 或
    sudo systemctl stop mysql.service
    
    • 1
    • 2
    • 3

    查看MySQL运行状态

    sudo service mysql status
    # 或
    sudo systemctl status mysql.service
    
    • 1
    • 2
    • 3

    设置MySQL服务开机自启动

    sudo service mysql enable
    # 或
    sudo systemctl enable mysql.service
    
    • 1
    • 2
    • 3

    停止MySQL服务开机自启动

    sudo service mysql disable
    # 或
    sudo systemctl disable mysql.service
    
    • 1
    • 2
    • 3

    MySQL的配置文件

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

    修改MySQL密码认证方式

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

    退出MySQL命令行

    mysql> quit
    
    • 1

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

  • 相关阅读:
    MySQL 8.0 Clone Plugin 详解
    HTML+CSS简单的网页制作期末作业——浙江旅游景点介绍网页制作
    solidworks底部状态栏显示不出来
    在WIN7下特定图片SystemParametersInfo失败,但是GetLastError()返回0
    麒麟系统开发笔记(十二):在国产麒麟系统上编译GDAL库、搭建基础开发环境和基础Demo
    pytorch中的词性标注_seq2seq_比较naive的示例
    SpringCache-缓存技术
    itext生成pdf
    反向传播法(backpropagation)的基本原理
    Casdoor + OAuth 实现单点登录 SSO
  • 原文地址:https://blog.csdn.net/Insight__/article/details/134049002