MySQL数据库访问权限及函数如何访问MySQL
一、MySQL数据库访问权限
1、连接MySQL服务器:使用mysql命令连接MySQL服务器。mysql h localhost u root p
,然后输入密码进行连接。
2、查看当前远程访问权限配置:在MySQL控制台中执行以下SQL语句,查看当前用户的远程访问权限。
SELECT User, Host FROM mysql.user;
默认情况下,root用户只能本地访问(Host为localhost)。
3、开启远程访问权限
改表法:登录MySQL后,修改mysql数据库中的user表的host字段。
UPDATE user SET host = '%' WHERE user = 'root'; FLUSH PRIVILEGES;
授权法:通过GRANT语句授权特定用户从任意主机访问。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; FLUSH PRIVILEGES;
4、配置防火墙:确保防火墙允许MySQL的默认端口3306的访问,以Ubuntu系统的ufw为例:
sudo ufw allow 3306/tcp sudo ufw reload
5、测试远程连接:在远程计算机上使用MySQL客户端或其他数据库管理工具测试连接。
mysql h your_server_ip u root p
二、函数如何访问MySQL数据库
1、创建并配置RDS实例:登录VPC控制台,创建专有网络VPC和交换机,然后在RDS控制台创建RDS实例,选择VPC和交换机。
2、配置白名单:进入RDS实例详情页,设置白名单,将专有网络中default的内网IP段或FC配置的交换机内网IP段添加到白名单中。
3、创建安全组:在安全组控制台新建安全组,点击创建安全组,设置名称和网络类型,添加规则允许3306端口的访问。
4、配置函数计算服务:在函数计算控制台创建服务,选择与RDS相同的区域,配置专有网络和交换机信息,授予ENI操作权限。
5、编写并上传函数代码:在函数代码中使用第三方模块如pymysql访问MySQL数据库,编辑index.py文件,示例代码如下:
import pymysql import os import logging def handler(event, context): db_host = os.environ['MYSQL_HOST'] db_port = int(os.environ['MYSQL_PORT']) db_user = os.environ['MYSQL_USER'] db_password = os.environ['MYSQL_PASSWORD'] db_name = os.environ['MYSQL_DBNAME'] connection = pymysql.connect( host=db_host, port=db_port, user=db_user, password=db_password, db=db_name ) try: with connection.cursor() as cursor: sql = "SELECT * FROM users" cursor.execute(sql) result = cursor.fetchall() for row in result: print(row) except Exception as e: logging.error(e) finally: connection.close()
6、部署并测试函数:将函数代码和依赖包打包上传至函数计算平台,部署并测试函数是否能正确访问MySQL数据库。
三、FAQs
1、如何在MySQL中设置强密码?:在创建或修改用户时,使用PASSWORD()函数对密码进行加密。
CREATE USER 'newuser'@'%' IDENTIFIED BY PASSWORD('yourpassword');
2、如何限制特定IP访问MySQL?:在授权语句中指定IP地址。
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'specific_ip' IDENTIFIED BY 'password';
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1239908.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复