在linunx系统刚装的MySQL,忘记曾经设置的密码或者安装过程无法设置密码时,试图用常用的密码猜测,如:1,11,111,1111,11111,111111,123456,000000,1234321等等最简单的默认密码来试探,结果试遍了也不对,还是无法进入mysql。原因可能是你当初设置的密码比较复杂后来给忘了,更可能的原因是你安装过程中没允许设置密码,这样的密码一般是MySQL随机生成的一大串由大小写字母、数字和符号组合成的复杂密码。这样的密码不需要白费力去试探了,这就需要通过特殊的方式来解决,就是改配置文件/etc/my.cnf。
步骤:
1.输入su -及密码,进入root权限。
2.停止MySQL,输入service mysqld stop
3.输入vi /etc/my.cnf,进入配置文件my.cnf进行编辑
4.找到[mysqld],在下面加入一行skip-grant-tables=1
5.Linux系统刚安装的mysql一般对数据库的表名大小写是敏感的,可在[mysqld]下再加入一行
lower_case_table_names=1
,表示忽略大小写,等于0则代表对大小写敏感
6.光标移到最下,输入:wq(有冒号)自动保存退出
7.启动mysql,输入service mysqld start
8.输入mysql -uroot -p,提示输出密码时,直接回车不管,就可以进入
9.输入use mysql;
10.改密码。输入update user set password=PASSWORD(�') where user="root";
---将root密码设置为12345678
11.输入exit,退出
12.别忘了把skip-grant-tables=1注掉,再次输入vi /etc/my.cnf,找到刚才加的skip-grant-tables=1前面加#注掉,:wq,退保存出。
13.重启mysql,service mysql restart,
14.再次输入mysql -uroot -p
,输入密码12345678,登录成功!
注:
linux下mysql安装完后是默认:区分表名的大小写,不区分列名的大小写。
用root帐号登录后,在/etc/my.cnf 中的[mysqld]后添加添加lower_case_table_names=1,重启MYSQL服务,这时已设置成功:不区分表名的大小写。
其中 0:区分大小写,1:不区分大小写
MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:
1、数据库名与表名是严格区分大小写的;
2、表的别名是严格区分大小写的;
3、列名与列的别名在所有的情况下均是忽略大小写的;
4、变量名也是严格区分大小写的;
MySQL在Windows下都不区分大小写。