在 macOS Big Sur 上安装 MySQL 8.x Compressed TAR Archive
因个人能力有限,文章难免存在错误,望斧正,感谢。
版本:
- macOS 11.6 Intel版本
- MySQL 8.0.26 Compressed TAR Archive
一、准备所需文件
前往 MySQL :: Download MySQL Community Server 选择macOS系统的Compressed TAR Archive版本下载,目前最新版本是8.0.26。下载后为~/Downloads/mysql-8.0.26-macos11-x86_64.tar.gz
。将其解压至/usr/local
并重命名目录为mysql:
% cd ~/Downloads/
% tar -zxvf mysql-8.0.26-macos11-x86_64.tar.gz
% sudo mv mysql-8.0.26-macos11-x86_64 /usr/local/mysql
二、调整目录权限
这一步的目的是保证mysql程序可以在此目录读写数据:
请将代码中的[user]替换为当前用户名
% cd /usr/local/
% sudo chown -R [user]:wheel mysql
三、初始化数据库
由于macOS的安全机制,最好还是在执行命令前先打开“系统偏好设置”-“安全性与隐私”-“允许从以下位置下载的App:所有来源”
在终端中执行如下命令并输入密码后可以打开所有来源:
sudo spctl --master-disable
执行完后再次去系统偏好设置中确认是否打开允许所有来源。
% cd /usr/local/mysql/bin/
% sudo ./mysqld --initialize --user=mysql
初始化数据库会在mysql目录内创建data文件夹,执行完毕后:
2021-05-15T15:00:05.366701Z 0 [System] [MY-013169] [Server] /usr/local/my/bin/mysqld (mysqld 8.0.24) initializing of server in progress as process 4137
2021-05-15T15:00:05.380284Z 0 [Warning] [MY-010159] [Server] Setting lower_case_table_names=2 because file system for /usr/local/my/data/ is case insensitive
2021-05-15T15:00:05.404662Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2021-05-15T15:00:05.649401Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2021-05-15T15:00:06.348791Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: ?/LNo#lwo3N6
2021-05-15T15:00:07.009105Z 0 [System] [MY-013172] [Server] Received SHUTDOWN from user <via user signal>. Shutting down mysqld (Version: 8.0.24).
记住初始化数据库生成的临时密码,也就是A temporary password is generated for root@localhost:
后的内容,注意冒号后有一个空格不算在临时密码中。
如果不小心忘记了临时密码,删除mysql目录下的data文件夹重新执行初始化操作。
四、启动MySQL服务
完成第三步后数据库就已经初始化完成了,此时启动MySQL服务后就可以连接到MySQL数据库了。具体操作如下:
% cd /usr/local/mysql/support-files/
% sudo ./mysql.server start
看见SUCCESS就说明启动MySQL服务成功。
除了start启动选项以外,还有stop(停止)restart(重新启动)status(状态)等。
五、修改MySQL密码
首次连接MySQL需要修改临时生成的密码,首先使用临时密码登陆MySQL,操作如下:
% cd /usr/local/mysql/bin/
% sudo ./mysql -u root -p
然后修改MySQL密码,操作如下:
将代码中的[newPassword]替换成新密码
mysql> ALTER USER root@localhost IDENTIFIED BY [newPassword]
到这里MySQL基本可以使用了。
六、配置Path
还有一个问题就是每次电脑重启后需要重新进入/usr/local/mysql/support-files/
目录执行启动MySQL服务命令,每次连接MySQL都需要先进入/usr/local/mysql/bin
目录,十分麻烦。
配置Path可以稍微解决这个问题,因为目前macOS默认shell是zsh,所以这里是zsh的Path配置。
在~目录下创建文件.zprofile
并写入如下内容:
export PATH="/usr/local/mysql/bin:/usr/local/mysql/support-files:${PATH}"
这样不管在什么目录都可以直接执行sudo mysql.server start
命令启动MySQL服务或sudo mysql -u root -p
命令连接MySQL