mysql修改用户密码

1. 修改配置文件

 A.进入配置文件:/etc/my.cnf
  [mysqld]
  skip-grant-tables 
  加入这句, 意思是跳过密码登录

2. 进入mysql修改密码

  /usr/local/mysql/bin/mysql进入
  ##===================================================================================##
  use mysql;   UPDATE user SET password
=PASSWORD("newpassword") WHERE user='root';
     FLUSH PRIVILEGES;   
  验证密码是否成功:
  select user,host,password from mysql.user; 
  是否有md5值
  create database db_test; 
C.创建一个新用户用于管理 db_test 数据库   
  insert into mysql.user(Host,User,Password)   values("localhost","admin",password("newpassword"));   
  flush privileges;
D.赋予权限
  GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'python123' WITH GRANT OPTION; # 这句是针对本机的, 以后可以使用127.0.0.1, 然后在下面那句   grant all privileges on db_test.* to 'user'@'%' identified by 'newpassword';
  %在这里表示%:代表0个一个或多个任意字符,也可以是网段,192.168.10.%等注意加引号

3. 验证是否修改成功

  验证密码是否成功:
  select user,host,password from mysql.user; 
  是否有md5值

4. 配置文件删除 skip-grant-tables

A.进入配置文件:/etc/my.cnf
  [mysqld]
  skip-grant-tables  // 删除这句

5. 登录--注意如果多服务多实例启动需要指定sock文件

mysql -h [localhost | IP] -P [port] -u [username] -p [password] -S 【socket file path】

案例:

 /usr/local/mariadb-10.1.26-linux-x86_64/bin/mysql -uroot -P3309 -S /usr/local/mariadb-10.1.26-linux-x86_64/mysql.sock -p

如果不指定sock 就会默认调到其他mysql实例去
原文地址:https://www.cnblogs.com/renfanzi/p/8242053.html