MySQL操作问题汇总

1 篇文章 0 订阅
1 篇文章 0 订阅


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;

3.mysql创建表时碰到问题汇总

(1) boolean字段类型
mysql中boolean和tinyint(1)字段类型等价,如下图所示
在这里插入图片描述
但是创建的时候boolean字段类型使用tinyint(1)代替,会提示1681警告

> create table if not exists test (status tinyint(1))
输出警告:0 row(s) affected, 1 warning(s): 1681 Integer display width is deprecated and will be removed in a future release.

所以创建时候直接使用boolean字段即可:

> create table if not exists test (status boolean)

(2) 创建表时,设置了唯一性的字段无需另外创建索引,mysql会为该字段创建索引
如图所示:
在这里插入图片描述

> create table if not exists test (identification varchar(10), UNIQUE(identification))

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值