截至文章发表时, Ubuntu 官方源中,最新的 MySQL 版本是 5.7。
安装 MySQL
-
更新 apt 包的索引
$ sudo apt update && sudo apt upgrade
-
安装 MySQL
$ sudo apt install mysql-server
-
安装完成后,MySQL服务将自动启动
可以用以下命令 检查MySQL服务器是否正在运行$ sudo systemctl status mysql
-
MySQL安全初始化
MySQL服务器包附带一个名为mysql_secure_installation
的脚本,可以执行多个与安全相关的操作MySQL服务器包附带一个名为mysql_secure_installation
的脚本,可以执行多个与安全相关的操作$ sudo mysql_secure_installation
安装phpMyAdmin
安装phpMyAdmin
$ sudo apt install phpmyadmin
安装程序将提示您选择应自动配置为运行phpMyAdmin的Web服务器,空格键选择apache2
,然后确定
接下来,将询问您是否使用dbconfig-common
设置数据库,选择Yes
并点击Enter
输入phpMyAdmin
的密码以注册数据库,选择OK
并按Enter
。
系统将提示您确认密码,输入相同的密码,OK
然后选择并按Enter
。
安装过程完成后,重新启动Apache以使更改生效
$ sudo systemctl restart apache2
创建管理MySQL用户
用于登录phpMyAdmin仪表板并在MySQL或MariaDB服务器上执行管理任务。
首先以root用户身份登录MySQL服务器:
$ sudo mysql
在MySQL shell中执行以下命令,这些命令将创建新的管理用户并授予适当的权限:
mysql> CREATE USER 'padmin'@'localhost' IDENTIFIED BY 'super-strong-password';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'padmin'@'localhost' WITH GRANT OPTION;
访问phpMyAdmin
要访问phpMyAdmin
界面,打开浏览器并键入服务器的域名或IP地址,然后/phpmyadmin
https://your_domain_or_ip_address/phpmyadmin
输入先前创建的管理用户登录凭据,然后单击Go
。
保护phpMyAdmin
要添加额外的安全层,我们将通过设置基本身份验证来密码保护phpMyAdmin目录。
首先,我们将使用Apache
软件包附带的工具htpasswd
为用户创建一个密码文件。我们将.htpasswd
文件存储在/etc/phpmyadmin
目录中:
sudo htpasswd -c /etc/phpmyadmin/.htpasswd padmin
在这个例子中,我们创建了一个名为的用户padmin
。您可以选择任何用户名,它不必与管理MySQL用户相同。
上面的命令将提示您输入并确认用户的密码。
New password:
Re-type new password:
Adding password for user padmin
如果要添加其他用户,可以使用不带-c标志的相同命令:
sudo htpasswd /etc/phpmyadmin/.htpasswd padmin2
下一步是使用.htpasswd
文件,将Apache
配置为密码保护phpMyAdmin
目录。
为此,请打开phpmyadmin.conf
在phpMyAdmin
安装期间自动创建的文件:
sudo nano /etc/apache2/conf-available/phpmyadmin.conf
编辑/插入 以下行:
<Directory /usr/share/phpmyadmin>
Options +FollowSymLinks +Multiviews +Indexes # edit this line # 这里一行
DirectoryIndex index.php
AllowOverride None # 这里一行
AuthType basic # 这里一行
AuthName "Authentication Required" # 这里一行
AuthUserFile /etc/phpmyadmin/.htpasswd # 这里一行
Require valid-user # 这里一行
<IfModule mod_php5.c>
...
保存并关闭该文件并重新启动Apache
以使更改生效:
sudo systemctl restart apache2
现在,当访问您的phpMyAdmin
时,系统将提示您输入之前创建的用户的登录凭据:
https://your_domain_or_ip_address/phpmyadmin
进入基本身份验证后,您将进入phpMyAdmin
登录页面,您需要输入MySQL
管理用户登录凭据。
将/phpmyadmin
目录重命名 为更独特和安全的也 是一个好主意。
使用 MySQL
更改身份验证方法
在Ubuntu系统中运行MySQL 5.7(或者更高版本的),
root
用户默认由auth_socket
插件进行身份验证。
auth_socket
插件,是从localhost
中通过Unix socket
文件对连接的用户进行身份验证。
以root用户类型登录MySQL服务器
$ sudo mysql
将身份验证方法从auth_socket
更改为mysql_native_password
,同时更改root
密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'very_strong_password';
mysql> FLUSH PRIVILEGES;
创建一个可以访问所有数据库的新管理用户
mysql> GRANT ALL PRIVILEGES ON *.* TO 'administrator'@'localhost' IDENTIFIED BY 'very_strong_password';
创建一个新的MySQL用户帐户
mysql> CREATE USER 'database_user'@'localhost' IDENTIFIED BY 'user_password';
如果要授予其他主机的访问权限,只需更改localhost
远程计算机IP或使用%
通配符作为主机部分,这意味着用户帐户将能够从任何主机进行连接。
更改MySQL用户帐户密码
更改MySQL或MariaDB用户帐户密码的语法取决于您在系统上运行的服务器版本。
您可以通过发出以下命令找到您的服务器版本:
mysql> mysql --version
如果你有MySQL 5.7.6及更新版或MariaDB 10.1.20及更新版,要更改密码,请使用以下命令:
mysql> ALTER USER 'database_user'@'localhost' IDENTIFIED BY 'new_password';
如果你有MySQL 5.7.5及更早版本或MariaDB 10.1.20及更早版本,那么使用:
mysql> SET PASSWORD FOR 'database_user'@'localhost' = PASSWORD('new_password');
列出所有MySQL用户帐户
我们可以通过查询mysql.users表列出所有MySQL或MariaDB用户帐户:
mysql> SELECT user, host FROM mysql.user;
删除MySQL用户帐户
要删除用户帐户,请使用以下命令:
mysql> DROP USER 'database_user@'localhost';