mysql8密码修改以及root账户开启允许远程连接

博客主要围绕MySQL8展开,介绍了开启root账户远程连接的方法,还提及若忘记密码可强制修改,且强调与以前修改密码策略不同。此外,说明了误删root用户后添加并赋予全部权限,以及修改连接方式和密码策略等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开启允许root账户远程连接:
首先使用mysql -u root -p; 进入root账户

1.use mysql;//切换使用mysql数据库
2.select user,host from user;   //查看用户是否开启远程
3.update user set host='%' where user='root';  //开启远程
4.flush privileges;//刷新权限

如果忘记mysql8的密码,强制修改root密码:
(注意与以前mysql修改密码策略不同)

1.在my.conf下添加skip-grant-tables;
2.flush privileges;
3.alter user'root'@'%' IDENTIFIED BY 'MyNewPass@123'; ('%'号是允许远程连接,引号中的root为账号,后面引号中的内容为新密码)
4.flush privileges;
5.重启一下mysql服务

如误将root用户删除,添加完root用户以后需要给root用户全部权限:

update user set host='%',select_priv='y', insert_priv='y',update_priv='y',Alter_priv='y',delete_priv='y',create_priv='y',drop_priv='y',reload_priv='y',shutdown_priv='y',Process_priv='y',file_priv='y',grant_priv='y',References_priv='y',index_priv='y',create_user_priv='y',show_db_priv='y',super_priv='y',create_tmp_table_priv='y',Lock_tables_priv='y',execute_priv='y',repl_slave_priv='y',repl_client_priv='y',create_view_priv='y',show_view_priv='y',create_routine_priv='y',alter_routine_priv='y',create_user_priv='y' where user='root';

修改连接方式为native:

1、在my.cnf中加入
default_authentication_plugin=mysql_native_password
collation-server = utf8_unicode_ci
character-set-server = utf8
2、重启mysql
3、新增用户,修改加密规则
create user 'admin'@'%' identified by 'admin123';
grant all on *.* to 'admin'@'%' ;
ALTER USER 'admin'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges;
ps:如果plugin不是caching_sha2_password,要先修改该用户的加密方式
update mysql.user   SET plugin="caching_sha2_password" where user='admin' and host="%";

mysql8修改密码策略:

在/etc/my.cnf文件添加validate_password_policy配置,指定密码策略

选择0(LOW),1(MEDIUM),2(STRONG)其中一种,选择2需要提供密码字典文件
validate_password_policy=0
如果不需要密码策略,添加my.cnf文件中添加如下配置禁用即可:

validate_password = off

加:

查看字符集mysql   show variables like 'collation%';
查看端口mysql   netstat -anp|grep mysqld;
### 配置 MySQL 8允许 Root 用户从远程位置进行连接 为了使 MySQL 8root 用户能够从远程位置连接,需修改用户的权限设置并调整服务器的安全配置。 #### 修改用户权限 默认情况下,root 用户仅限于本地访问。要启用远程访问,可以创建一个新的具有相同权限的用户或将现有 root 用户更新为支持远程登录: ```sql ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_new_password'; CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'your_new_password'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES; ``` 上述命令首先更改了 root 用户的身份验证插件为 `mysql_native_password`[^4],这是因为 MySQL 8 默认使用的加密方式与早期版本不同。接着创建了一个新的 root 用户,其主机部分设为 `%` 表示可以从任何 IP 地址连接。最后赋予该新用户全部权限,并刷新授权表生效这些变更。 #### 调整防火墙规则 确保操作系统上的防火墙已开放 MySQL 使用的端口,默认通常是3306端口。对于 Linux 系统而言,在 CentOS 或 RHEL 上可以通过以下命令来打开此端口: ```bash firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload ``` 这会永久性地向公共区域添加 TCP 协议下的 3306 端口,并重新加载防火墙配置使其立即生效。 #### 编辑 MySQL 配置文件 还需确认 MySQL 是否被配置成监听所有网络接口而非仅仅 localhost。编辑 `/etc/my.cnf.d/server.cnf` 文件中的 `[mysqld]` 段落,找到或添加如下行: ```ini bind-address = 0.0.0.0 ``` 保存更改后重启 MySQL 服务以便应用新的绑定地址设定。 完成以上步骤之后,应该就可以通过外部客户端尝试使用新密码连接到数据库服务器了。不过需要注意的是,直接暴露 root 权限给互联网存在较大安全隐患,建议只授予必要的最小化权限给特定的应用程序账户用于日常操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值