之前用的 MySQL 安装版,好处在于无脑操作、一路 next 就行了;但想安装多个版本时不太方便。
最近想安装多个版本,于是就尝试了解压版,发现还是有一些需要注意的地方。这里记录一下安装和启动的主要流程。操作系统:macOS Mojave 10.14.5
MySQL版本:mysql-5.7.19-macos10.12-x86_64
1. 下载解压
下载的文件为:mysql-5.7.31-macos10.14-x86_64.tar.gz
# 解压
tar -zxvf mysql-5.7.31-macos10.14-x86_64.tar.gz
# 移动到某个目录下(非必须,看个人喜好)
sudo mv mysql-5.7.31-macos10.14-x86_64 /usr/local
2. 生成初始密码
由于解压版没有初始密码(安装版会生成一个随机的初始密码),因此需要手动生成 root 用户的临时密码,命令如下:
# 切换到 mysql 安装目录并执行初始化命令并记录生成的临时 root 密码
$ sudo bin/mysqld --initialize --user=mysql
2021-01-15T06:40:16.161988Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2021-01-15T06:40:16.165977Z 0 [Warning] Setting lower_case_table_names=2 because file system for /usr/local/mysql-5.7.31-macos10.14-x86_64/data/ is case insensitive
2021-01-15T06:40:16.399492Z 0 [Warning] InnoDB: New log files created, LSN=45790
2021-01-15T06:40:16.437014Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2021-01-15T06:40:16.505278Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 87349fc8-56fc-11eb-a411-362f4ae5a070.
2021-01-15T06:40:16.522724Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2021-01-15T06:40:17.669156Z 0 [Warning] CA certificate ca.pem is self signed.
2021-01-15T06:40:17.966460Z 1 [Note] A temporary password is generated for root@localhost: G>u)iwtUq2md
密码就是最后一行的 G>u)iwtUq2md ,接下来就可以在客户端连接 MySQL 服务了。
3. 服务相关命令
# 切换到 MySQL 安装目录
cd /usr/local/mysql
# 启动服务
sudo support-files/mysql.server start
# 重启服务
sudo support-files/mysql.server restart
# 停止服务
sudo support-files/mysql.server stop
# 检查 MySQL 运行状态
sudo support-files/mysql.server status
4. 环境变量配置
为了方便启动,可以把 MySQL 相关路径配置到环境变量:
# MySQL
export PATH=$PATH:/usr/local/mysql/bin
export PATH=$PATH:/usr/local/mysql/support-files
5. 启动
# 启动 MySQL 服务
$ sudo mysql.server start
# 登入 MySQL
$ mysql -uroot -p
这里的密码就是刚才初始化密码。
6. 修改密码
只有初始化密码还是不能进行任何操作的,需要重置密码,命令如下:
mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql> ALTER USER root@localhost IDENTIFIED WITH mysql_native_password BY '新密码';
这样就可以进行正常的操作了。
以上。