方法一
使用phpmyadmin,这是最简单的了,修改mysql库的user表,
不过别忘了使用PASSWORD函数。
方法二
使用mysqladmin,这是前面声明的一个特例。
mysqladmin -u root -p password mypasswd
输入这个命令后,需要输入root的原密码,然后root的密码将改为mypasswd。
把命令里的root改为你的用户名,你就可以改你自己的密码了。
当然如果你的mysqladmin连接不上mysql server,或者你没有办法执行mysqladmin,
那么这种方法就是无效的。
而且mysqladmin无法把密码清空。
下面的方法都在mysql提示符下使用,且必须有mysql的root权限:
方法三
mysql> INSERT INTO mysql.user (Host,User,Password)
VALUES(%,jeffrey,PASSWORD(iscuit));
mysql> FLUSH PRIVILEGES
确切地说这是在增加一个用户,用户名为jeffrey,密码为biscuit。
方法四
mysql> REPLACE INTO mysql.user (Host,User,Password)
VALUES(%,jeffrey,PASSWORD(iscuit));
mysql> FLUSH PRIVILEGES
方法五
使用SET PASSWORD语句,
mysql> SET PASSWORD FOR jeffrey@"%" = PASSWORD(iscuit);
必须使用PASSWORD()函数,
但是不需要使用FLUSH PRIVILEGES。
方法六
使用GRANT ... IDENTIFIED BY语句
mysql> GRANT USAGE ON *.* TO jeffrey@"%" IDENTIFIED BY iscuit;
这里PASSWORD()函数是不必要的,也不需要使用FLUSH PRIVILEGES。
注意: PASSWORD() [不是]以在Unix口令加密的同样方法施行口令加密。
方法七
update user set password=PASSWORD("新密码") where user='root';
本地无root权限修改MYSQL密码法
打开CMD首先停止服务
net stop mysql
进入mysql安装目录下的bin文件夹,然后输入
mysqld-nt --skip-grant-tables
跳过密码检测
然后另外新打开一个cmd窗口
输入mysql 直接回车可以以root权限进入mysql
use mysql
update user set password=password("新密码") where user="root";
flush privileges;
如果无错误提示,密码即可更改成功。
二、执行sql脚本文件
方法一 使用cmd命令执行(以windows为例,unix或linux的在其类似的控制台下运行)
格式:【Mysql的bin目录】\mysql –u用户名 –p密码 –D数据库<【sql脚本文件路径全名】
示例:D:\mysql\bin\mysql –uroot –p123456 -Dtest<d:\test\ss.sql
注意事项:
1、如果在sql脚本文件中使用了use 数据库,则-D数据库选项可以忽略
2、如果【Mysql的bin目录】中包含空格,则需要使用“”包含,如:
“C:\Program Files\mysql\bin\mysql” –u用户名 –p密码 –D数据库<【sql脚本文件路径全名】
3、如果需要将执行结果输出到文件,可以采用以下模式
D:\mysql\bin\mysql –uroot –p123456 -Dtest<d:\test\ss.sql>d:\dd.txt
方法二 进入mysql的控制台后,使用source命令执行
1、进入mysql控制台
D:\mysql\bin\mysql –uroot –p123456 -Dtest
2、执行sql脚本文件
Mysql>source 【sql脚本文件的路径全名】
引用
另外,当用客户端连接 mysql 时,发现无法连接,看来需要对用户进行重新授权。操作如下:
[root@cicro108 mysql]# bin/mysql -uroot -p -h 127.0.0.1
Enter password:
Welcome to the MySQL monitor. Commands end with or /g.
Your MySQL connection id is 1863 to server version: 4.1.20-standard
Type 'help;' or '/h' for help. Type '/c' to clear the buffer.
mysql> grant ALL PRIVILEGES ON *.* to root@"%" identified by "mysql" ;
Query OK, 0 rows affected (0.17 sec)
发现这样更改权限以后,远程仍然不能连接,但是用下面的操作就可以了。
mysql> grant ALL PRIVILEGES ON *.* to root@"%" identified by "mysql" WITH GRANT OPTION;
Query OK, 0 rows affected (0.17 sec)
此刻, root 可以被远程连接,当然这里建立其他非 root 用户也可以远程连接。