对于linux上MySQL的用户信息修改问题,经常会困惑很多同学们,时间长久不操作,网上问题总结不全,总是花费大量的时间去整理再解决问题,所以今天我就给大家分享一下关于linux 上mysql的用户密码修改的操作,坑都给你们准备好,请大家注意哟。
1,登录linux root用户,获取root权限
# my.cnf
vi /etc/my.cnf
末尾添加
skip-grant-tables
wq保存退出。
#更新mysql
service mysqld restart
2,登录进入mysql控制台
设置了免密登录后,直接回车即可进入
mysql -u root -p
3,修改密码(第一个坑)
遇到这种情况的时候:首先应该指定数据库
ERROR 1054 (42S22): Unknown column 'password' in 'field list'
注意:在linux终端 mysql里面需要时刻记住命令最后加上分号。
4:再次开始修改密码(第二个坑)
当遇到这个情况的时候,很明显的就是password字段的问题
ERROR 1054 (42S22): Unknown column 'password' in 'field list'
错误的原因是 5.7版本下的mysql数据库下已经没有password这个字段了,password字段改成了authentication_string
update user set authentication_string=password('test123456') where User="root" and Host="localhost";
就这样 密码就修改成功。
5,退出删掉 my.cnf 末行添加的内容
#quit 退出
vi /etc/my.cnf
去掉skip-grant-tables
wq, 保存退出
再次重启mysql服务
service mysqld restart
6,对于新用户授权问题
create database test_database
对于数据密码问题,我个人建议直接对于密码的等级和长度直接作出修改,防止后续需要密码的时候,密码过于简单而报错。
授权root用户使用密码****拥有。 test_databse数据库的所有权限,并从任何主机连接的话。
grant all privileges on test_database.* to 'root'@'%' identified by '密码' with grant option;
同样也可以设置为部分授权
对于指定的数据只授权 select,update 的权限
grant select,update on test_database.* to root@localhost identified by '密码';
总结:
对于mysql 数据库的操作其实并不难,但是办法总比困难多,我们在linux 上安装和配置数据库的时候都是遇到许多的问题,有些问题可能是对于linux 的不熟悉所导致,命令的使用和mysql的机制的不了解所造成,但是这些都是经验所导致。
然而我们经常忽略的就是细心,认真编写每一个命令,对于linux的操作都会提高效率,遵循linux终端命令的编写和格式要求,切记每一个标点符号或者是中英文状态的字符都会导致命令执行错误,认真细心很重要。
欢迎大家时刻关注我,我将不断的给大家带来更多的高效工作的技巧和经验。