MySQL操作问题汇总

MySQL操作问题汇总


1.无法远程连接Ubuntu的MySQL

(1) 需要检查防火墙状态

> sudo ufw status

#如果防火墙开启的情况,添加规则:允许3306端口开启

> sudo ufw allow 3306

(2) 需要检查mysql的运行状态

> sudo systemctl status mysql

#或者

> sudo service mysql status

(3) MySQL默认只允许本地连接:localhost,需要检查

> sudo netstat -plnt | grep mysql
0.0.0.0:表示监听所有网段
127.0.0.1:表示监听localhost


提示:MySQL默认只允许本地连接:localhost

解决:

#1.修改配置文件

#/etc/mysql/mysql.conf.d/mysqld.cnf

> cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/mysql.conf.d/mysqld.cnf.bak

> sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

> #bind-address = 127.0.0.1 注释此行

> #或者 添加:

> bind-address = 0.0.0.0

#2.重启mysql

> sudo systemctl restart mysql

(4) 需要检查mysql的root用户的远程连接权限
提示:mysql的root用户默认只有localhost的连接权限

#root用户登录

> mysql -u root -p

#登录成功后查看mysql.user表的相干记录,如下图所示,可以发现当前root用户属于默认情况

> use mysql

> select user,host from mysql.user;
localhost:表示该用户只具备localhost的连接权限
%:表示该用户只具备任何远程主机的连接权限

解决:

#创建支持远程主机连接的root用户

> create user 'root'@'%' identified by '123456';

#授权此root用户所有权限

> grant all privileges on *.* to 'root'@'%';

#刷新

> flush privileges;


2.ubuntu忘记mysql的root密码时的操作

(1) 查看mysql自带用户和密码

> sudo cat /etc/mysql/debian.cnf


(2) 使用自带用户debian-sys-maint登录

> sudo mysql -u debian-sys-maint -p

(3) 登录mysql后,修改mysql密码

> alter user 'root'@'localhost' identified by "123456";

#或者

> alter user 'root'@'localhost' identified with caching_sha2_password by '123456';

(4) 刷新权限

> flush privileges;

相关推荐
这孩子叫逆6 小时前
6. 什么是MySQL的事务?如何在Java中使用Connection接口管理事务?
数据库·mysql
掘根8 小时前
【网络】高级IO——poll版本TCP服务器
网络·数据库·sql·网络协议·tcp/ip·mysql·网络安全
Bear on Toilet9 小时前
初写MySQL四张表:(3/4)
数据库·mysql
无妄啊______9 小时前
mysql笔记9(子查询)
数据库·笔记·mysql
Looooking9 小时前
MySQL 中常用函数使用
数据库·mysql
island13149 小时前
从 InnoDB 到 Memory:MySQL 存储引擎的多样性
数据库·学习·mysql
ZZDICT10 小时前
MySQL 子查询
数据库·mysql
柳鲲鹏10 小时前
编译成功!QT/6.7.2/Creator编译Windows64 MySQL驱动(MinGW版)
开发语言·qt·mysql
一个很帅的帅哥10 小时前
实现浏览器的下拉加载功能(类似知乎)
开发语言·javascript·mysql·mongodb·node.js·vue·express
dbln11 小时前
MySQL之表的约束
数据库·mysql