---------------------------------------------------------------------------
修改 MySQL 密码的方法
首先要声明一点,修改 MySQL 密码需要有 MySQL 的 root 权限的,因此一般用户无法更改密码,除非请求管理员。
1. 直接在 shell 终端更改
输入如下命令后回车,之后会提示你输入密码,输入原密码之后你就把密码改成 your_new_password 了。
mysqladmin -u username -p password 'new_password'
由于此方法是直接对授权表 user 进行修改,而服务器只有在启动的时候才会加载授权表中的权限设置,因此虽然对授权表进行了更改,但是并没有应用与服务器,必须使用客户端程序 mysql 环境下的 flush privileges 命令或使用管理工具 mysqladmin 的 flush-privileges 或 reload 子命令通知服务器重新加载授权表。方法 2 中后跟 flush privileges 子句的情况原因是一样的。
2 中的方法我测试的时候要不不好使,要不会有点问题,比如多了同名用户之类的,因为对 mysql 还不熟悉,所以也不太清楚问题的原因。不过我觉得要改密码还是用方法 1 比较好。
2. 登录 mysql 后更改
1) update user set password = password("new_password") where user='username';
flush privileges;
2) set password for username = password('new_password');不好使
3) set password for username@"%" = password('new_password');不好使
4) grant usage on *.* to username@"%" identified by 'new_password';
5) replace into mysql.user (host,user,password) values('%','username',password('new_password'));
flush privileges;
说明:password 方法的目的是对口令进行加密。
---------------------------------------------------------------------------
linux 下默认的配置文件:
/etc/my.cnf
linux 下默认的数据目录:
/var/lib/mysql/
显示数据库创建语句:
show create database database_name;
显示表创建语句:
show create table table_name;
改变数据库的默认字符集:
alter database database_name character set charset_name;
改变表的默认字符集:
alter table table_name character set charset_name;
转换表的字符集(表中的内容也会跟着改变,小心使用,有可能会出现乱码):
alter table table_name convert to character set charset_name;
备份数据库:
mysqldump -u user_name -p --databases database_name > bakup.sql
---------------------------------------------------------------------------