代码: 全选
sudo apt-get install apache2 mysql-server php5 php5-mysql php5-gd phpmyadmin
装好后,mysql管理员是root,无密码,通过http://localhost/phpmyadmin就可以访问mysql了。
访问mysql的用户的权限被保存在mysql里一个叫mysql的数据库里,phpmyadmin通过controluser访问mysql数据库得到用户的权限信息,并根据用户权限显示相应等级的管理界面(在刚安装好,没有配置phpmyadmin之前,是默认用root、无密码来查询的)。controluser只需要简单的查询权限,在phpmyadmin的文档http://localhost/phpmyadmin/Documentation.html里有说明:
SELECT privilege on the mysql.user (all columns except "Password"), mysql.db (all columns), mysql.host (all columns) and mysql.tables_priv (all columns except "Grantor" & "Timestamp") tables.
此用户需要有mysql.user(除了Password列)、mysql.db、mysql.host、mysql.tables_priv(除了Grantor、Timestamp)表的查询权限。上面mysql是数据库名,user、db等是他的数据表名,括号里是他的列。所以在登录phpmyadmin后,需要新建一个具有这些权限的controluser,给phpmyadmin查询mysql。这里不直接用root的原因是,controluser的密码必须以明文保存在/usr/share/phpmyadmin/config/config.inc.php中,所以新建一个只有查询所有用户权限的自身权限极小的用户,可以避免风险。
现在我们添加一个叫pma的controluser:在phpmyadmin(可以先在右边选择界面语言-中文)左边界面选权限-添加新用户,输入用户名、密码、主机(这里指phpmyadmin所在,为本地localhost,若phpmyadmin和mysql不在同一台机器,就填phpmyadmin的ip或域名),比如pma、pmapass,全局权限等不选,点执行。完成后再点权限,在用户pma行最右边点编辑,然后在按数据库添加权限选mysql数据库,再在按数据表添加权限选user数据表,选择select权限里除了password的其他所有列,点执行。用同样的方法添加上面提到的权限,就完成了用户pma的权限设置。以上也可以用SQL语言来完成,点权限-SQL,输入(把下面的用户名pma、密码pmapass等改成你自己的设定)
代码: 全选
GRANT USAGE ON mysql.* TO 'pma'@'localhost' IDENTIFIED BY 'pmapass';
GRANT SELECT (
Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
File_priv, Grant_priv, References_priv, Index_priv, Alter_priv,
Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv,
Execute_priv, Repl_slave_priv, Repl_client_priv
) ON mysql.user TO 'pma'@'localhost';
GRANT SELECT ON mysql.db TO 'pma'@'localhost';
GRANT SELECT ON mysql.host TO 'pma'@'localhost';
GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv)
ON mysql.tables_priv TO 'pma'@'localhost';
将phpmyadmin文件夹在web下的访问权限配置文件复制到apache目录
代码: 全选
sudo cp /etc/phpmyadmin/apache.conf /etc/apache2/conf.d
修改setup.php文件的认证用户、密码
代码: 全选
sudo htpasswd -c /etc/phpmyadmin/htpasswd.setup username
需要重启apache服务设置才能生效
代码: 全选
sudo /usr/sbin/apache2ctl restart
下面修改mysql管理员密码:可以在进入phpmyadmin后直接修改root的密码。或在命令行修改
代码: 全选
sudo mysql -u root
代码: 全选
sudo mysql -u root -p
代码: 全选
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yourpassword');
代码: 全选
GRANT ALL PRIVILEGES ON *.* TO 'yourusername'@'localhost' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;
代码: 全选
mysql> FLUSH PRIVILEGES;
代码: 全选
mysql> \q
若忘了管理员密码,先在菜单-系统-管理-系统监视,把mysql相关进程杀掉,以无认证方式启动mysql
代码: 全选
sudo mysqld --skip-grant-tables
代码: 全选
mysqladmin -h hostname -u username password yournewpassword
代码: 全选
mysqladmin -u root -p flush-privileges
注意mysql中管理员root(或其他名称)和系统管理员root不相关。
若因用户权限原因phpmyadmin进不了mysql,试着修改config.inc.php文件或mysql管理员密码。
若/etc/phpmyadmin下的一些配置文件误删了,重装phpmyadmin也没用,只会说not replace deleted file...。这些在/usr/share/ucf/phpmyadmin/etc/phpmyadmin下有备份,复制过来即可。