安装MySQL后,默认管理员的root密码为空
设置密码
/usr/local/mysql/bin/mysqladmin -u root password '123'
修改密码
命令行外修改
[root@localhost ~]# /usr/local/mysql/bin/mysqladmin -uroot -p123 password '123123'
[root@localhost ~]# /usr/local/mysql/bin/mysql -uroot -p123
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
[root@localhost ~]# /usr/local/mysql/bin/mysql -uroot -p123123
mysql>
命令行内修改
mysql> update mysql.user set password=password('123') where user='root' and host='localhost';
Query OK, 4 rows affected (0.04 sec) Rows matched: 4 Changed: 4 Warnings: 0
mysql> flush privileges; #刷新MySQL的系统权限相关表 或者 退出重新登录 Query OK, 0 rows affected (0.00 sec)
set方式
SET PASSWORD = PASSWORD('yhq') #修改当前用户密码 SET PASSWORD FOR 'yhq'@'localhost' = PASSWORD('yhq'); #根据用户名 用户名的指定格式为用户名@主机名
找回密码
关闭mysql服务
[root@localhost ~]# ps -ef|grep mysql root 1528 1 0 20:36 ? 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --user=mysql mysql 1878 1528 0 20:36 ? 00:00:02 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/data/localhost.localdomain.err --pid-file=/usr/local/mysql/data/localhost.localdomain.pid --socket=/tmp/mysql.sock --port=3306 root 19925 17999 0 21:53 pts/2 00:00:00 /usr/local/mysql/bin/mysql -uroot -px xxxx root 27503 31348 0 22:39 pts/0 00:00:00 grep mysql [root@localhost ~]# kill 1878 [root@localhost ~]# ps -ef|grep mysql root 19925 17999 0 21:53 pts/2 00:00:00 /usr/local/mysql/bin/mysql -uroot -px xxxx root 29387 31348 0 22:40 pts/0 00:00:00 grep mysql
忽略授权表启动
[root@localhost ~]# /usr/local/mysql/bin/mysqld_safe --skip-grant-tables --user=mysql & [1] 4296 [root@localhost ~]# 190801 22:44:03 mysqld_safe Logging to '/usr/local/mysql/data/localhost.localdomain.err'. 190801 22:44:03 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
修改密码
[root@localhost ~]# /usr/local/mysql/bin/mysql mysql> update mysql.user set password=password("yhq") where user='root' and host='localhost'; Query OK, 0 rows affected (0.00 sec) Rows matched: 1 Changed: 0 Warnings: 0 mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
关闭mysql(因为此时服务是忽略授权表)
[root@localhost ~]# /usr/local/mysql/bin/mysqladmin -uroot -pyhq shutdown [root@localhost ~]# ps -ef |grep mysqld root 13426 31348 0 23:01 pts/0 00:00:00 grep mysqld
重启登录
[root@localhost ~]# /usr/local/mysql/bin/mysqld_safe --user=mysql &
[root@localhost ~]# /usr/local/mysql/bin/mysql -uroot -pyhq