MySQL 8 root 远程登陆
介绍
MySQL是一个广泛使用的开源关系型数据库管理系统。它是Web应用中最常用的数据库之一,被广泛用于存储和管理数据。MySQL 8是MySQL数据库的最新版本,它引入了许多新功能和改进。
MySQL的root用户是具有最高权限的用户,可以执行任何操作。默认情况下,root用户只能在本地登录MySQL数据库,即只能通过本地主机进行访问。但是,在某些情况下,我们可能需要从远程主机进行访问和管理MySQL数据库。
本文将向您介绍如何在MySQL 8中配置root用户的远程登录,并提供相应的代码示例。
配置MySQL 8允许root远程登录
要允许root用户从远程主机进行登录,我们需要进行以下步骤:
步骤 1:修改MySQL配置文件
在开始之前,请先备份您的MySQL配置文件。
要修改MySQL配置文件,请按照以下步骤进行:
- 打开MySQL配置文件(通常位于
/etc/mysql/mysql.conf.d/mysqld.cnf
或/etc/mysql/my.cnf
)。 - 找到并注释掉以下行(如果存在):
注释掉的方式是在行开头添加bind-address = 127.0.0.1
#
符号。 - 保存并关闭配置文件。
步骤 2:重新启动MySQL服务
在修改MySQL配置文件后,我们需要重新启动MySQL服务以使更改生效。
要重新启动MySQL服务,请使用以下命令:
sudo systemctl restart mysql
步骤 3:更新root用户的访问权限
MySQL 8引入了一种新的身份验证插件caching_sha2_password
,它与旧版本的MySQL身份验证方式不兼容。为了使root用户能够从远程主机进行登录,我们需要更新其身份验证插件。
要更新root用户的身份验证插件,请按照以下步骤进行:
- 以root身份登录到MySQL服务器:
mysql -u root -p
- 在MySQL shell中,执行以下命令以修改root用户的身份验证插件:
将ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';
your_password
替换为您希望设置的root用户密码。 - 执行以下命令以刷新权限:
FLUSH PRIVILEGES;
- 退出MySQL shell:
exit;
步骤 4:授予root用户远程登录权限
为了允许root用户从远程主机进行登录,我们需要授予其相应的权限。
要授予root用户远程登录权限,请按照以下步骤进行:
- 以root身份登录到MySQL服务器:
mysql -u root -p
- 在MySQL shell中,执行以下命令以授予root用户远程登录权限:
将GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION;
your_password
替换为您之前设置的root用户密码。 这个命令允许root用户从任何远程主机进行登录。 - 执行以下命令以刷新权限:
FLUSH PRIVILEGES;
- 退出MySQL shell:
exit;
代码示例
以下是一个示例代码,演示如何使用Python的mysql-connector-python
库从远程主机连接到MySQL服务器。
import mysql.connector
# 连接到MySQL服务器
cnx = mysql.connector.connect(
host='your_mysql_server_ip',
user='root',
password='your_password',
database='your_database'
)
# 执行查询语句
cursor = cnx.cursor()
cursor.execute('SELECT * FROM your_table')
# 获取查询结果
result = cursor.fetchall()
for row in result:
print(row)
# 关闭连接
cnx.close()
请确保您已将your_mysql_server_ip
替换为您MySQL服务器