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;

相关推荐
苹果醋31 小时前
React源码02 - 基础知识 React API 一览
java·运维·spring boot·mysql·nginx
别致的影分身3 小时前
使用C语言连接MySQL
数据库·mysql
过过过呀Glik3 小时前
在 Ubuntu 上安装 MySQL 的详细指南
mysql·ubuntu
Sunyanhui16 小时前
牛客网 SQL36查找后排序
数据库·sql·mysql
老王笔记6 小时前
MHA binlog server
数据库·mysql
2401_871213307 小时前
mysql高阶语句
数据库·mysql
山山而川粤9 小时前
网络安全宣传系统|Java|SSM|JSP|
java·开发语言·后端·学习·mysql
_汤姆大叔10 小时前
MySQL 高级操作全解析
数据库·mysql
呼啦啦啦啦啦啦啦啦11 小时前
【MySQL篇】聚合查询,联合查询
数据库·mysql
今天不coding12 小时前
MySQL体系架构
数据库·mysql·体系架构·网络连接层·服务层·存储引擎层·系统文件层