步骤 1:更新系软件包列表
首先,确保您的系统软件包是最新的,运行以下命令更新软件包列表:
sudo apt update sudo apt upgrade
步骤 2:安装MySQL 8.0
运行以下命令安装MySQL 8.0服务器:
sudo apt install mysql-server
在安装过程中,系统会要求您设置root账号的密码。请记住这个密码,因为您将需要它来进行远程连接(如果没有提示设置密码,就是按默认执行,下面步骤设置密码)。
步骤 3:启动MySQL服务
安装完成后,MySQL服务应该已经启动。如果没有,请使用以下命令启动它:
sudo systemctl start mysql
还可以使用以下命令确保MySQL在系统启动时自动启动:
sudo systemctl enable mysql
步骤 4:配置MySQL root用户允许远程连接
默认情况下,MySQL root用户只能从本地连接到数据库。要允许远程连接,需要执行以下步骤:
4.1 编辑MySQL配置文件,打开终端并运行以下命令:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
4.2 在配置文件中找到以下行:
bind-address = 127.0.0.1
将其中的127.0.0.1改为MySQL服务器的IP地址,或者如果您希望允许所有IP连接,可以将其更改为:
bind-address = 0.0.0.0
4.3 保存并关闭文件。
4.4 重新启动MySQL服务以应用更改:
sudo systemctl restart mysql
步骤 5:在MySQL中创建远程连接的root用户
现在,我们需要在MySQL中创建一个允许远程连接的root用户(正常不建议用root,这里做演示用)。
5.1 在 MySQL 8.0 版本中,默认情况下,root 用户的身份验证方法通常是使用 "auth_socket" 插件,而不是使用密码进行身份验证。这意味着 root 用户可以直接从本地登录而不需要密码。
第一次登录 打开终端并运行以下命令以以 auth_socket 插件身份登录到 MySQL:
sudo mysql -u root
这将以 root 用户身份登录到 MySQL 而无需密码。
5.2 更改 root 用户的身份验证插件并设置密码
运行以下命令以查看当前 root 用户的身份验证插件(可以看是几个root账号 一般初始默认一个 root/localhost):
SELECT user, host, plugin FROM mysql.user WHERE user = 'root';
5.3 如果您看到 plugin 列中的值为 auth_socket,那么需要更改为 caching_sha2_password 插件,并设置密码。使用以下命令更改 root 用户的插件并设置密码(请将 <your_new_password> 替换为您希望设置的密码):
ALTER USER 'root'@'localhost' IDENTIFIED WITH 'caching_sha2_password' BY '<your_new_password>';
5.4 刷新 MySQL 权限以使更改生效:
FLUSH PRIVILEGES;
5.5 以上只完成了 root@localhost 账号的配置 只能 本地登录时用账号密码登录:
5.6 本地配置可远程登录的root账号密码
Mysql8.0 需要再创建一个新的 root 用户:
CREATE USER 'root'@'%' IDENTIFIED BY '您的密码';
5.7 授予新的 root 用户所有权限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
5.8 刷新 MySQL 的权限:
FLUSH PRIVILEGES;
5.9:退出 MySQL 命令行
EXIT;
其他情况:如果你是用Navicat 连接工具 (caching_sha2_password这种加密方式可能支持不友好,你可以改成mysql_native_password 8.0.4以前版本是这个加密方式) 密码加密方式修改命令:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';
现在,您已经创建了一个新的 root 用户并允许其从远程主机连接到 MySQL 服务器。请确保服务器防火墙允许 MySQL 的端口(默认为 3306)通过。