常用命令
登陆MySql
使用某个库
use [数据库名];
查看表列表
show tables;
显示表的结构
DESCRIBE MYTABLE;
键入命令mysql -uroot -p, 回车后提示你输入密码,输入12345,然后回车即可
mysql -uroot -p
MySql服务重启
service mysql restart
重置密码
重置MySql密码不同MySql版本重置的方式又不一致,网络上的大部分教程都说的是8.0前的,试了都是错的,下面将介绍8.0前后的两种重置密码的方式,其实5.7.6以后就改变了重置方式。
ps:mysql5.7.6版本后 废弃user表中 password字段 和 password()方法,所以旧方法重置密码对mysql8.0版本是行不通的
Mysql5.8以下
一、先让mysql进入免登陆状态
输入命令,打开配置文件
vi /etc/my.cnf
在mysqld标签下第一行加入skip-grant-tables,然后保存退出
[mysqld]
skip-grant-tables //加入这行
...
二、重置密码
//重启MySql服务
service mysql restart
//登陆MySql,按两次回车即可进入数据库
mysql -uroot -p
//命令的意思是更新用户名是root的密码为123456,可以根据你自己的需求更改密码
update mysql.user set authentication_string=password('123456') where user='root';
//刷新配置,之后按ctrl+D退出MySql
FLUSH PRIVILEGES;
//把第一步开启的免登陆关闭了
vi /etc/my.cnf
把skip-grant-tables这行删除掉后保存
//重启MySql服务
service mysql restart
MySql5.8以上
一、先让mysql进入免登陆状态
输入命令,打开配置文件
vi /etc/my.cnf
在mysqld标签下第一行加入skip-grant-tables并保存退出
[mysqld]
skip-grant-tables //加入这行
...
二、重置密码
//重启MySql服务
service mysql restart
//登陆MySql,按两次回车即可进入数据库
mysql -uroot -p
//命令的意思是把root用户的密码先置空,之后按ctrl+D退出MySql
update mysql.user set authentication_string = '' where user = 'root';
//把第一步开启的免登陆关闭了
vi /etc/my.cnf
把skip-grant-tables这行删除掉后保存
//重启MySql服务
service mysql restart
//登陆MySql,按两次回车即可进入数据库
mysql -u root -p
//命令是修改用户的密码为123456,注意这边的localhost,如果你有改过用户表root用户的host的话,要记得这边也要对应上
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
远程连接
我的服务器最近出现被删库的情况出现,应该是被黑了,想到我当时MySql安装上后是开放的远程连接,谁都可以连接,密码又是弱密码,很容易被黑客测出来。
所以针对这点我就要关闭我的远程连接了,只允许localhost访问,想到平时偶尔我还是要用工具连接数据库查看的,就需要设置一些指定的IP地址允许访问即可。
Root用户权限太大,不开放出来使用,创建一个普通用户,并赋予对应的数据库给他
一、创建普通用户
用户名:junwen
ip地址:58.22.xx.xx
密码:131211
CREATE USER 'junwen'@'58.22.xx.xx' IDENTIFIED WITH mysql_native_password BY '131211';
PS:如果想让一个用户绑定多个IP的话,就用上面的命令换个IP地址多执行一次,用户表里会多创建一条记录的
二、给普通用户赋予允许访问的数据库
允许访问的数据库:stock_new.*
用户名:junwen
IP地址:58.22.xx.xx
grant select on stock_new.* to junwen@'58.22.xx.xx' ;
三、成果
这样数据库远程连接的情况只允许我们配置的58.22.xx.xx这个IP地址访问了,而且访问到的数据库只有stock_new这个库
我连接上WIFI后再去连接数据库就会报错
个人公众号
喜欢的可以关注我的公众号,不定期会发布相关技术的文章