Archlinux上安装MySQL/MariaDB和其它发行版略有不同,因此这里梳理记录一下
- 执行常规安装
[mu@mu polls]$ sudo pacman -S mariadb #安装MariaDB [mu@mu polls]$ sudo systemctl enable mariadb #设置开机自启 Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /usr/lib/systemd/system/mariadb.service. [mu@mu polls]$ sudo systemctl start mariadb #启动MariaDB,会发现启动失败 Job for mariadb.service failed because the control process exited with error code. See "systemctl status mariadb.service" and "journalctl -xe" for details. [mu@mu polls]$ sudo journalctl -xe | grep error #抓取错误信息
- 通过错误日志可以发现,启动失败的原因是数据库中不存在相关的数据库表,即"mysql.user"表。因此,我们需要先完成初始化安装,而这也正是
ArchLinux同Debian或RHEL/CentOS等发行版差异的体现,后者在安装完DEB/RPM包后,即可完成数据库的初始化。
[mu@mu polls]$ id mysql uid=978(mysql) gid=978(mysql) groups=978(mysql) [mu@mu polls]$ sudo mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql/ [mu@mu polls]$ sudo systemctl start mariadb [mu@mu polls]$ ss -tnl State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 0.0.0.0:22 0.0.0.0:* LISTEN 0 10 0.0.0.0:8000 0.0.0.0:* LISTEN 0 128 [::]:22 [::]:* LISTEN 0 80 *:3306 *:* [mu@mu polls]$ mysql_secure_installation [mu@mu polls]$ sudo systemctl enable mariadb [mu@mu polls]$ sudo systemctl restart mariad
注:如果不想通过systemd或容器中无法使用systemd,你可以通过执行命令 /usr/sbin/mysqld_safe --datadir=/var/lib/mysql/ & 的方式来启动mariadb,同时请注意DATADIR_PATH默认为/var/lib/mysql/,如果你手动修改了数据库存放目录,请替换为你自己的DATADIR_PATH。