马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
CentOS 7 自带的数据库软件包是 MariaDB,而不是 Oracle 的 MySQL。很多人第一次装服务的时候会在这里绕一下:yum 里搜不到 mysql-server,其实应该装 mariadb-server。这篇把 CentOS 7 上安装 MariaDB 的全过程走一遍:装包、启动、开机自启、跑安全脚本、最后验证版本。
一、先弄清 MariaDB 是什么
MariaDB 是 MySQL 的一个分支,由原 MySQL 的核心开发团队维护,遵循 GPL 许可。它在绝大多数场景下可以直接替代 MySQL:命令行工具还是 mysql、mysqladmin,SQL 语法兼容度很高,LEMP、LNMP、WordPress 这些成熟组件都不需要改代码。CentOS 7 把 MariaDB 设成了默认数据库软件包,所以系统里预置的源就能直接装。
二、前置条件
- 一台 CentOS 7 虚拟机或物理机;
- 一个具备 sudo 权限的非 root 用户(直接用 root 远程登录是不推荐的习惯);
- 能连上 yum 源(内网机器建议先换国内镜像,装起来快很多)。
三、用 yum 装 mariadb-server
sudo yum install mariadb-server
中途会提示确认,看到 Is this ok [y/N] 就按 y 回车。
四、启动服务
sudo systemctl start mariadb
sudo systemctl status mariadb
systemctl 本身不会把「成功」打印得很明显,所以要用 status 复核。正常的话输出里要有 Active: active (running),最后一行类似:
Dec 01 19:06:20 centos-512mb-sfo2-01 systemd[1]: Started MariaDB database server.
顺手设成开机自启,enable 会创建必要的符号链接:
sudo systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
注意:systemctl enable 只是建链接,不会立刻启动服务,别和 start 搞混。
五、跑安全初始化
sudo mysql_secure_installation
这个脚本用来清掉不安全的默认值,一路问答式往下走:
- 第一问要输入 root 密码,此时还没设,直接回车;
- 接着提示设置 root 密码,输入并确认两次;
- 后面几项统一回车接受建议:删除匿名账户、禁止 root 远程登录、删除 test 数据库、重新加载权限表。
这几项里最值得保留的是「禁止 root 远程登录」——远程连库走一个普通账号 + 授权,再配合防火墙白名单,比 root 直连安全得多。
六、验证装好了没
mysqladmin -uroot -p version
回车后输入刚设的密码,能看到类似输出就说明服务正常:
mysqladmin Ver 9.0 Distrib 5.5.50-MariaDB, for Linux on x86_64
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Server version 5.5.50-MariaDB
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/lib/mysql/mysql.sock
Uptime: 4 min 4 sec
Threads: 1 Questions: 42 Slow queries: 0
Opens: 1 Flush tables: 2 Open tables: 27
Queries per second avg: 0.172
CentOS 7 源里默认给的就是 5.5.x 这一档,属于够用但偏老的版本。如果业务需要 10.x 的新特性(比如窗口函数、WITH 语法、JSON 改进),那得去 MariaDB 官方源或者第三方仓库装更高版本,跨大版本升级一定要先在测试机验一遍。
七、两个常见坑
- 装完连不上:先
sudo systemctl status mariadb 看是否真的 running,再检查 /var/log/mysqld.log;
- 远程连不通:默认 MariaDB 只监听 127.0.0.1,要远程得改
/etc/my.cnf 里的 bind-address,同时开防火墙端口,并且别用 root 账号。
qidao123.com企服评测-应用市场 编辑提示 |