Mac 下安装 MySQL8

本文最后更新于:2020年9月17日 上午

MySQL 断断续续的安装了 3、4 次了,每次都是各种 google。还是记录一下比较好,省的日后再去找了

准备工作

我是用 homebrew 的方式安装的。如果没有安装过,可直接用如下命令安装:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安装之后,再更新一下,确保接下来安装的 MySQL 是 8 版本的

brew update

来吧,MySQL

brew install mysql

等待安装结束…结束之后,命令行会有如下提示:

We've installed your MySQL database without a root password. To secure it run:
    mysql_secure_installation

MySQL is configured to only allow connections from localhost by default

To connect run:
    mysql -uroot

To have launchd start mysql now and restart at login:
  brew services start mysql
Or, if you don't want/need a background service you can just run:
  mysql.server start

按照提示中的命令启动 MySQL 服务即可,相关命令如下:

# 启动 mysql
brew services start mysql
# 重启 mysql
brew services restart mysql
# 关闭 mysql
brew services stop mysql
# 查看所有 Homebrew 管理的服务
brew services list

如果忘记了服务启动命令也没关系,则可以通过如下命令找回:

brew info mysql

稍稍配置一下

默认情况下,root 用户是没有密码的,

mysql -uroot

输入此命令即可直接 MySQL 了

设置 root 密码

MySQL 安装完成之后,会提示运行 mysql_secure_installation 命令来启用 Valid Password 组件,此组件包含一些密码策略的设置。
退出登录 MySQL,在命令行输入

mysql_secure_installation

根据提示,一步步完成,记住我们自己设置的密码。

然后,登录 MySQL:

mysql -uroot -p

回车之后,输入刚才命令行里设置的密码,登录成功之后,在 MySQL 下可输入如下命令可查看当前设置的 Valid Password 策略:

SHOW VARIABLES LIKE 'validate_password%';

返回如下:

mysql> SHOW VARIABLES LIKE 'validate_password.%';
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password.check_user_name    | ON    |
| validate_password.dictionary_file    |       |
| validate_password.length             | 8     |
| validate_password.mixed_case_count   | 1     |
| validate_password.number_count       | 1     |
| validate_password.policy             | LOW   |
| validate_password.special_char_count | 1     |
+--------------------------------------+-------+
7 rows in set (0.01 sec)

其中每个策略值得含义如下:

名称含义
validate_password_check_user_name设为 ON 时,密码中不允许包含用户名
validate_password_dictionary_file用于密码验证的字典文件路径,仅在密码验证级别为 STRONG 时生效
validate_password_length限制密码长度不得少于 8 位
validate_password_mixed_case_count密码中大小写字母的最少个数
validate_password_number_count密码中数字的最少个数
validate_password_policy设置密码验证级别
validate_password_special_char_count密码中特殊符号的最少个数

如果想要更改对应的策略值,例如,我当前设置的密码是 8 位的,但我只想改成 6 位,那么可以这样设置:

mysql> set global validate_password.length=6;

这句的意思是把密码长度改成 6 位,再次查看密码策略相关值,可以看到密码长度已经设置成功了:

mysql> SHOW VARIABLES LIKE 'validate_password.%';
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password.check_user_name    | ON    |
| validate_password.dictionary_file    |       |
| validate_password.length             | 6     |
| validate_password.mixed_case_count   | 1     |
| validate_password.number_count       | 1     |
| validate_password.policy             | LOW   |
| validate_password.special_char_count | 1     |
+--------------------------------------+-------+
7 rows in set (0.01 sec)

接下来退出 MySQL,再次运行 mysql_secure_installation, 重新设置密码就好了。

参考链接


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!

 目录