那么下面来详细讲解如何在Linux平台下开启MySQL的远程登录,并且给出两个具体示例。
1. 修改MySQL配置文件
首先,需要修改MySQL的配置文件,以允许远程登录。可以使用以下命令查找配置文件的位置:
sudo find / -name my.cnf
通常情况下,MySQL的配置文件位于/etc/mysql/my.cnf
下。找到配置文件后,使用以下命令打开并编辑它:
sudo vi /etc/mysql/my.cnf
在文件中找到以下代码:
bind-address = 127.0.0.1
注释掉该行代码,即在前面加#号:
#bind-address = 127.0.0.1
保存并关闭文件。
2. 创建一个具有远程登录权限的MySQL用户
接下来,需要为远程登录创建一个MySQL用户,并为该用户授权。首先使用以下命令以root身份进入MySQL:
mysql -u root -p
输入MySQL root用户的密码后,进入MySQL数据库控制台。使用以下命令创建一个新用户,并为该用户授权:
CREATE USER '用户名'@'%' IDENTIFIED BY '密码';
GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%';
FLUSH PRIVILEGES;
注意,将以上的用户名
和密码
替换为自己所需的用户名和密码。
上述命令的含义为创建了一个用户名为用户名
,密码为密码
的MySQL用户,而'%'
表示将该用户授权给任何远程主机。最后的FLUSH PRIVILEGES
命令为刷新MySQL权限表。
示例1:远程连接MySQL
假设MySQL服务器的IP地址为192.168.1.100
,用户名为remoteuser
,密码为passwd
,现在可以使用以下命令以远程方式连接到MySQL:
mysql -u remoteuser -p -h 192.168.1.100
输入密码后,即可进入MySQL控制台。
示例2:使用Python远程连接MySQL
如果需要使用Python代码以远程方式连接MySQL,可以使用pymysql
库。以下是一个示例代码:
import pymysql
db = pymysql.connect(host='192.168.1.100',
user='remoteuser',
password='passwd',
db='test',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)
cursor = db.cursor()
sql = "SELECT * FROM test_table WHERE id=1"
cursor.execute(sql)
result = cursor.fetchone()
print(result)
db.close()
上述代码首先使用pymysql.connect
函数连接到MySQL,其中host
为MySQL服务器的IP地址,user
和password
为创建的MySQL用户的用户名和密码,db
为需要连接的数据库名,charset
为字符集,cursorclass
为游标类型。连接成功后,可以使用cursor
对象执行SQL语句,并通过fetchone
函数获取结果。最后,使用db.close()
函数关闭MySQL连接。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Linux平台mysql开启远程登录 - Python技术站