1 phpmyadmin的几种登陆方式
phpmyadmin 有3种授权模式
- cookie:显示一个web登陆页面,输入mysql的用户名和密码,然后进入管理界面
- http:显示一个windows登陆框,输入mysql的用户名和密码,然后进入管理界面
- config:把mysql用户名和密码直接填入config.inc.php,不显示登陆界面,直接进入管理界面
phpmyadmin的配置文件名为config.inc.php,各个版本的config.inc.php修改方法如下:
- 2.6以前版本:将config.inc.sample.php改为config.inc.php
- 2.7版本:将config.default.php改为config.inc.php
- 2.8版本:用配置脚本’script/setup.php’生成配置文件,生成的文件拷贝下来,手动存为config.inc.php
- 2.8版本以上提供配置脚本
2 使用cookie授权模式
将’auth_type’改为’cookie’,然后修改’blowfish_secret’用一个任意字符串作为cookie的加密字符串,如果没有加密钥匙,系统会显示”配置文件现在需要绝密的短语密码(blowfish_secret) ” ,配置文件如下:
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['blowfish_secret'] = '44e2f5aece2855.93921574';
修改完毕后,访问phpmyadmin安装目录中的index.php则显示登陆窗口,输入用户名和密码完成登陆.
3 使用config授权模式
config需要这几个参数
$cfg['Servers'][$i]['auth_type'] = 'config'; //授权模式
$cfg['Servers'][$i]['user'] = 'root'; //mysql登陆用户
$cfg['Servers'][$i]['password'] = '12345'; //mysql登陆用户密码
4 使用http授权模式
$cfg['Servers'][$i]['auth_type'] = 'http';
http授权模式的登陆窗口
注意事项:如果mysql服务器端采用了4.1以上版本,而客户端连接用的是mysql4.1一下版本,对用户设置密码时注意使用OLD_PASSWORD函数,举例:
- mysql > SET PASSWORD = OLD_PASSWORD(‘12345’)
- mysql > /G
5 附录
除了上述三种phpmyadmin自带的方法外,还可以使用apache的配置来限制登录,在phpmyadmin目录下放置一个.htaccess文件,指定使用的密码记录文 件。然后用htpasswd来生成密码保存在该密码记录文件中(文件的内容是加密的,使用方法htpasswd /etc/php_passwd username)
httpd.conf中的内容:
<Directory "/phpmyadmin's directory">
AllowOverride AuthConfig
</Directory>
.htaccess文件的内容
authtype basic
authuserfile /etc/php_passwd
authname information
require valid-user
我们可以看到/etc/php_passwd文件中的内容类似这样:
username:2Y2CD6nfJuwL6
6 mysql 修改root密码
1.用 SET PASSWORD命令设置mysql root密码
mysql -u root
mysql>SET PASSWORD FOR 'root'@'localhost'=PASSWORD('newpass');
2.用mysqladmin设置mysql root密码
mysqladmin -u root password 'newpass'
如果root密码已经设置过采用如下方法修改:
mysqladmin -u root password oldpass 'newpass'
3.用update直接编辑mysql数据库的user表
msyql -u root
mysql>use mysql
mysql> update user set password=password('newpass') where user='root';
mysql> flush privileges;
7 忘记mysql的用户密码
以root用户为例子
第一种方式
1.修改mysql的my.cnf文件:
sudo vim /etc/mysql/my.cnf
在my.cnf文件中[mysqld]内容中添加skip-grant-table,保存修改
2.重启mysql服务 sudo /etc/init.d/mysql restart
3.在shell中重新登陆mysql -u root
mysql> use mysql;
mysql> update user set password=password(‘newpass’) where user=’root’;
mysql> flush privileges;
4.删去my.cnf中skip-grant-table,保存修改,重启mysql。
第二种方式
1.在一个终端中启动 mysqld_safe --skip-grant-table
2.在另一个终端中即可使用mysql -u root
登录mysql,不用输入密码
3.然后
mysql>UPDATE mysql.user
SET authentication_string = PASSWORD('MyNewPass'), password_expired = 'N'
WHERE User = 'root' AND Host = 'localhost';
mysql>FLUSH PRIVILEGES;
4.关闭mysqld_safe进程,使用新密码登录mysql即可