Debian 9 使用 MariaDB 彻底代替了 MySQL。因此在配置方面,相比之前版本有很多的不同。本文记录了我在 Debian 9 中配置 MariaDB 的一些有用的信息。

文章假定你是 root。

安装 MariaDB

安装 MariaDB 仍旧可以使用下面的命令,相比使用 mariadb-server,使用 mysql-server 能够保证对 MySQL 的兼容性。

apt install mysql-server

因为 Debain 9 源内的 MariaDB 10.0 使用了 UNIX 套接字认证,所以在全新安装 MariaDB 的过程中,不再有 MySQL root 密码的配置窗口。

关于本部分的详细内容参阅:

https://mariadb.com/kb/en/library/moving-from-mysql-to-mariadb-in-debian-9/#secure-passwordless-root-accounts-only-on-new-installs

提供远程访问权限

这部分需要两个步骤,修改服务监听地址 授权数据库

修改服务监听地址

不再是修改 my.cnf 了。这次,你需要修改的是这个文件:

/etc/mysql/mariadb.conf.d/50-server.cnf

修改的内容一样,在 [mysqld] 区块下,修改 bind-address 的值。下面的一段实例,是允许任意IP地址连线数据库:

[mysqld]

#
# * Basic Settings
#
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address            = 0.0.0.0

授权数据库

你需要授予数据库远程访问的权限。首先使用

mariadb

来进入 MariaDB 命令行。只要你是 Linux 的 root,登入 MariaDB 不需要密码。

接下来,给 MariaDB 的 root 用户授予远程访问权限:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.100.%' IDENTIFIED BY 'my-new-password' WITH GRANT OPTION;

 

其中,192.168.100.% 指允许远程登陆的 IP,% 为通配符。

别急着退出 MariaDB 命令行,还有一步事情要做:

修改 MariaDB 的 root 密码

接着上步骤,执行下面的语句,一行一回车:

use mysql
UPDATE user SET Password = password('新密码') WHERE User = 'root';
flush privileges;

使用原生 MySQL 认证

因为默认使用了 UNIX SOCKET 认证,有些 phpMyAdmin 在登入时会发生 “Access Denied” 错误。我们可以更改 UNIX SOCKET 认证为原生 MySQL 认证。

接着上面执行:

update mysql.user set plugin = 'mysql_native_password' where User='root';   
flush privileges;  
exit

最后,重启一下数据库即可

systemctl restart mariadb.service

 


其他有用的信息

留下评论

电子邮件地址不会被公开。 必填项已用*标注