我们可以在命令行工具下面管理MySQL/MariaDB数据库。如果想要个图形界面的话,可以安装使用phpMyAdmin,这样通过浏览器就可以直接管理服务器里面的数据库:添加用户、设置密码、创建数据库、导入导出数据等等。
安装
在很多Linux类型的系统上都可以使用包管理工具去安装phpMyAdmin,比如在CentOS系统里,先为系统安装epel仓库,然后就可以通过yum -y install phpmyadmin安装phpMyAdmin了。
当然如果你不想使用默认的版本,可以去https://www.phpmyadmin.net/downloads/这里下载安装。
通过yum安装的默认目录为/usr/share/phpMyAdmin,也可能是其他目录,根据系统版本不同,可能会有变化,大家留意一下就可以了。下面我们要设置访问,这里以nginx为例,在/etc/nginx/conf.d/你站点的conf文件中的server加入以下代码:
location /phpmyadmin { alias /usr/share/phpMyAdmin; index index.php; } location ~ /phpmyadmin/.+\.php$ { if ($fastcgi_script_name ~ /phpmyadmin/(.+\.php.*)$) { set $valid_fastcgi_script_name $1; } include fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/share/phpMyAdmin/$valid_fastcgi_script_name; }
现在,打开浏览器,输入nginx服务器绑定的主机名/phpmyadmin就可以访问了,用MySQL/MariaDB系统里的用户登录一下看看。
配置
登录到phpMyAdmin以后,在页面底部会显示“配置文件现在需要一个短语密码。”或"The configuration file now needs a secret passphrase (blowfish_secret).",你需要在phpMyAdmin的配置文件里的blowfish_secret这个配置里面去设置一个密码,phpMyAdmin会用到这个密码,加密Cookie。phpMyAdmin 的相关配置要放在一个叫 config.inc.php的文件里,如果这个文件不存在,你可以复制一份 config.sample.inc.php,命名为 config.inc.php。进入到phpMyAdmin所在的目录以后:
cp config.sample.inc.php config.inc.php
然后去生成一串随机的密码,可以使用openssl去做:
openssl rand -base64 32
返回:
kVu/yTa5dzkIJiYHrDppvnU+y8LCLf6XkpoldsCMfFQ=
复制返回来的随机密码,然后打开config.inc.php,搜索$cfg['blowfish_secret'],把复制的密码粘贴到这个配置的后面。
$cfg['blowfish_secret'] = 'AhONip2q+KmANQJfbzx7NC+j+hsGRKuhuQi8ClJG4mk=';
保存配置文件,回到浏览器,重新登录。
安全
在生产环境下使用 phpMyAdmin,所有人也都可以看到phpMyAdmin的登录页面,虽然他们不知道你的数据库的用户名跟密码,不过还是挺吓人的。我们可以配置一下nginx ,在显示phpMyAdmin登录页面之前,验证一下用户的身份,同样需要输入用户名还有密码,成功以后,才能进入到phpMyAdmin的登录页面,然后使用数据库管理系统上的用户登录。
我们要做的是创建一个密码文件,文件里的内容就是用户名与对应的密码,然后再去设置一下nginx的服务器配置,访问phpMyAdmin的时候,用密码文件里的用户名跟密码验证用户的身份。这个密码需要用crypt()加密一下,可以使用openssl去做这件事:
openssl passwd
提示你输入要加密的密码,输入好以后,回车,又会提示Verifying - Password,再输入一次密码。再次回车,会返回加密以后的密码,像这样:
cHDQh8dVIZRwY
复制一下这串加密之后的密码,下面再去创建一个密码文件,进入到nginx的配置文件所在的目录:
cd /etc/nginx/conf.d
创建一个文件叫pma_pass(意思是phpMyAdmin password),可以使用vim:
vim pma_pass
文件里的内容使用username:password的形式,像这样:
kimsom:cHDQh8dVIZRwY
打开服务器的配置文件,修改location /phpmyadmin模块,用auth_basic指令设置一个登录窗口的提示,再用auth_basic_user_file指令设置一下密码文件的位置:
location /phpmyadmin { auth_basic "Login Please"; auth_basic_user_file /etc/nginx/conf.d/pma_pass; alias /usr/share/phpMyAdmin; index index.php; }