Linux下mysql8开启远程连接方法

重置MySQL root密码全攻略
本文详述了重置MySQL root用户密码的步骤,包括禁用密码验证、更新root用户密码、设置远程访问及强化密码安全性。适用于本地及阿里云服务器环境。

第一步:安装好mysql过后(安装忽略,没什么难度),vim /etc/my.cnf,添加skip-grant-tables
第二步:启动服务service mysqld start,然后查看服务是否启动好,ps -ef|grep mysqld
第三步:输入mysql,回车登录进去,然后执行update user set authentication_string='' where user='root';再执行flush privileges;
第四步:输入exit退出来,在修改my.cnf,去掉skip-grant-tables,重启服务service mysqld restart
第五步:修改host,执行update user set host="%" where user="root";
再执行ALTER USER "root"@"localhost" IDENTIFIED  BY "自定义密码"(这里如果密码不符合规则,会有提示不符合安全规则,自己设置一下就好了),
再执行GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION(赋权限);
第五步:再执行ALTER USER 'root'@'%' IDENTIFIED BY '自定义密码(同上)' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '自定义密码(同上)';
FLUSH PRIVILEGES;
完成!
(注意:如果使用的是阿里云服务器,需要去添加安全组规则,有教程的)

### 配置 MySQL 8Linux 环境下允许远程访问 为了使 MySQL 8 能够接受来自其他机器的连接请求,在 Linux 系统上的配置过程涉及多个步骤,包括修改 MySQL 的绑定地址、设置防火墙规则以及调整用户的权限。 #### 修改 MySQL 配置文件 MySQL 默认仅监听本地回环接口 (127.0.0.1),这会阻止外部 IP 地址发起的连接尝试。要更改此行为,需编辑 MySQL 的配置文件 `my.cnf` 或 `mysqld.cnf`: ```bash sudo nano /etc/my.cnf ``` 找到 `[mysqld]` 部分下的 `bind-address` 参数,并将其更改为服务器的实际公网 IP 地址或者使用通配符 `0.0.0.0` 来接收所有网络接口上的连接请求[^1]: ```ini [mysqld] bind-address = 0.0.0.0 ``` 保存并关闭该文件之后重启 MySQL 服务以应用新的配置选项: ```bash sudo systemctl restart mysqld ``` #### 设置用户权限 即使已经开放了端口,还需要确保目标数据库账户具有足够的权限来处理远程客户端发送过来的数据操作指令。可以通过运行如下 SQL 命令赋予特定用户名(`your_username`)从任意位置(`%`)登录的能力[^3]: ```sql GRANT ALL PRIVILEGES ON *.* TO 'your_username'@'%' IDENTIFIED BY 'password'; FLUSH PRIVILEGES; ``` 这里需要注意的是替换 `'your_username'` 和 `'password'` 成实际使用的名称与密码组合;另外如果只需要授予部分表的操作权,则可以相应地缩小范围而不是采用通配符形式表示全部资源(*.*)。 #### 处理操作系统层面的安全防护措施 CentOS 及其衍生版本通常配备有 firewalld 守护进程作为默认防火墙解决方案。因此有必要确认 TCP 协议中的标准 MySQL 数据传输端口号(即3306)已被列入许可列表之中[^2]: ```bash sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent sudo firewall-cmd --reload ``` 完成上述命令执行后再次验证状态确信无误: ```bash sudo firewall-cmd --list-all | grep ports ``` 理想的结果应该显示包含 "ports: 3306/tcp" 字样的一行输出。 通过以上三个主要方面的调整——解除绑定限制、分配适当授权给相关账号以及放开必要的通信通道——就可以成功实现基于Linux平台部署好的最新版MySQL软件对外提供远距离调用支持的功能需求了。 ```python # 测试Python脚本能否正常建立到新设环境里的链接关系 import pymysql.cursors connection = pymysql.connect(host='server_ip', user='your_username', password='password', database='db_name') try: with connection.cursor() as cursor: sql_query = """SELECT VERSION();""" cursor.execute(sql_query) finally: connection.close() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值