下面是关于在Debian系统上安装MySQL 8.0并配置远程连接的详细教程:
一、安装MySQL 8.0
-
更新软件包索引:
sudo apt-get update
-
安装MySQL服务器:
由于Debian官方库中默认可能没有MySQL 8.0,所以我们需要添加MySQL APT存储库。
首先下载MySQL APT配置包:
wget https://dev.mysql.com/get/mysql-apt-config_0.8.30-1_all.deb #版本可以自己修改
然后安装它:
sudo dpkg -i mysql-apt-config_0.8.30-1_all.deb
在安装过程中,会提示选择MySQL的版本,选择MySQL 8.0并确认。两次选择以后,第三次选择ok,不然会一直循环一个页面
-
再次更新软件包索引:
sudo apt-get update
-
安装MySQL服务器:
sudo apt-get install mysql-server #这里会引导你设置root账户密码
-
启动MySQL服务并使其开机自启动:
sudo systemctl start mysql sudo systemctl enable mysql
二、配置MySQL
-
运行安全安装脚本:
sudo mysql_secure_installation
该脚本会引导你完成一些安全相关的设置,比如设置root用户密码、删除匿名用户、禁止远程root登录等。
-
登录MySQL:
sudo mysql -u root -p
三、配置远程连接
-
创建远程用户并授权:
在MySQL命令行中,输入以下命令来创建一个远程用户并赋予其权限:
CREATE USER 'youruser'@'%' IDENTIFIED BY 'yourpassword'; GRANT ALL PRIVILEGES ON *.* TO 'youruser'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES; #mysql8.0及以上更高版本有些语法以及插件可能会发生变化,如果修改不了请看下方: 先登录mysql mysql -u root -p 输入密码 mysql> use mysql; mysql> select user,host from user; +------------------+-----------+ | user | host | +------------------+-----------+ | root | % | | admin | localhost | | mysql.infoschema | localhost | | mysql.session | localhost | | mysql.sys | localhost | | zhangj | localhost | +------------------+-----------+ 注意我的 root,host是'%' 你可能执行的是: ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123'; 改成: ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123'; 如果还是不行: 尝试一:重置密码为空 先登录MySQL,重置密码为空,并刷新 update user set authentication_string='' where user='root'; flush privileges; 再用上面的方法修改密码
-
修改MySQL配置文件:
编辑MySQL的主配置文件
my.cnf
(一般在/etc/mysql/mysql.conf.d/mysqld.cnf
或/etc/mysql/my.cnf
):sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
找到
bind-address
这一行,修改为:bind-address = 0.0.0.0
这将允许MySQL监听所有IP地址。
-
重启MySQL服务:
sudo systemctl restart mysql
4、去华为云或者阿里云开放mysql相应的端口
5、如果8.0远程链接失败,报错Plugin 'mysql_native_password' is not loaded
重新启用 MySQL Native Password 插件 虽然 MySQL 8.4 默认不再启用 mysql_native_password 插件,你仍然可以启用该插件。不推荐这么做除非 PHP 应用在 PHP 7.3 或者更好的版本上运行,这些旧版本无法使用 caching_sha2_password 插件。 要启用 mysql_native_password 插件,请在 MySQL 配置文件的 [mysqld] 区域添加以下内容并重启 MySQL 服务。 在基于 Debian/Ubuntu 的系统中,该文件位于 /etc/mysql/ 目录。推荐为此创建新文件,比如 /etc/mysql/conf.d/enable-mysql-native-password.cnf。 # Enable mysql_native_password plugin [mysqld] mysql_native_password=ON
如果你的Debian系统启用了防火墙,需要允许MySQL服务通过:
sudo ufw allow 3306/tcp
五、测试远程连接
你可以使用MySQL客户端工具(如MySQL Workbench)或者命令行从远程主机连接到你的MySQL服务器。例如:
mysql -u youruser -p -h your_debian_server_ip
输入密码后,如果连接成功,说明配置正确。
这样,你就成功在Debian系统上安装了MySQL 8.0,并配置了远程连接。