Rocky Linux 安装 Mariadb
什么是 Mariadb
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB(英语:XtraDB)来代替MySQL的InnoDB。 MariaDB由MySQL的创始人Michael Widenius(英语:Michael Widenius)主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自Michael Widenius的女儿Maria的名字。
为什么是 Mariadb
-
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。
-
MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,10.0.9版起使用XtraDB(名称代号为Aria)来代替MySQL的InnoDB。MariaDB由MySQL的创始人麦克尔·维德纽斯主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。
-
MariaDB名称来自麦克尔·维德纽斯的女儿玛丽亚(英语:Maria)的名字。
-
MariaDB直到5.5版本,均依照MySQL的版本。因此,使用MariaDB5.5的人会从MySQL 5.5中了解到MariaDB的所有功能。从2012年11月12日起发布的10.0.0版开始,不再依照MySQL的版号。10.0.x版以5.5版为基础,加上移植自MySQL 5.6版的功能和自行开发的新功能。
-
MariaDB的API和协议兼容MySQL,另外又添加了一些功能,以支持本地的非阻塞操作和进度报告。这意味着,所有使用MySQL的连接器、程序库和应用程序也将可以在MariaDB下工作。在此基础上,由于担心甲骨文MySQL的一个更加封闭的软件项目,Fedora的计划在Fedora 19中的以MariaDB取代MySQL,维基媒体基金会的服务器同样也使用MariaDB取代了MySQL。
安装 Mariadb
-
确认是否安装了 Mariadb,如果安装首先卸载:
1
rpm -qa | grep mariadb
-
查询 Mariadb 软件源:
1
dnf search mariadb
-
查看 mairadb-server 信息:
1
dnf info mariadb-server
-
安装 Mariadb-server:
1
2
3
4//管理员安装
//dnf install -y mairadb-server
//非管理员安装
su -c "dnf install -y mairadb-server"
Mariadb 状态及设置开机运行
-
查看运行状态:
1
systemctl status mariadb
-
设置开机运行
1
2systemctl enable mariadb
//非管理员情况下会提示使用root进行操作,输入密码即可 -
手动运行 Mariadb
1
2systemctl start mariadb
//非管理员情况下会提示使用root进行操作,输入密码即可 -
再次查看状态:
1
systemctl status mariadb
说明:看到Active(Running)字样,说明正常运行
Mariadb 基本设置
-
查看 Mariadb-server 安装了那些组件?分别安装在哪里?
1
rpm -ql mariadb-server
-
Mariadb 默认使用的目录,基本与MySQL 一致:
-
bin目录: /usr/bin
-
配置文件目录: /usr/share/mariadb
-
数据库文件存放目录: /var/lib/mysql
-
启动配置文件目录: /etc/my.cnf.d
-
日志目录: /var/log/mariadb
-
-
Mariadb 安装配置向导 mysql_secure_installation
-
安装完mysql-server 会提示可以运行mysql_secure_installation。运行mysql_secure_installation会执行几个设置:
a) 为root用户设置密码
b) 删除匿名账号
c) 取消root用户远程登录
d) 删除test库和对test库的访问权限
e) 刷新授权表使修改生效
通过这几项的设置能够提高mysql库的安全。建议生产环境中mysql安装这完成后一定要运行一次;
1
mysql_secure_installation
- 如果曾经安装过Mariadb 或者 Mysql 数据库卸载后再次安装,且运行 mysql_secure_installation, 请输入上次数据库设置的用户密码,否则:
-
Mariadb 基本操作
-
登录 Mariadb 数据库
1
2mysql -h host -P 3306 -u root -p
//其中 host 为服务器地址; 3306 为默认端口号 root 为登录用户名 -p为密码 -
退出登录 Mariadb
1
quit
-
查看 Mariadb 版本
1
select version();
-
应用指定数据库
1
use database;
-
查看当前选择使用的数据库
1
select database();
-
查看 Mariadb 数据库
1
show databases;
-
查看默认认证方式
Mysql Mariadb 数据中,用户信息存放在默认的 mysql 数据库的 user 表中
1
select host, user, plugin from user;
-
创建用户并授权
1
2
3
4
5
6
7
8
9
10# 创建用户
create user 'user_name'@'%' identified with mysql_native_password by 'password';
#
# 授权
grant all privileges on database.tables to 'user_name'@'%' with grant option;
# 授权所有数据库的所有表所有权限
# grant all privileges on *.* to 'user_name'@'%' with grant option;
#
# 刷新使之生效
flush privileges;其中:
-
user_name:用户名
-
‘%’ 域
可选值:
%代表通配所有host地址权限(可远程访问)
localhost为本地权限(不可远程访问)
指定特殊Ip访问权限 如10.138.106.102 -
password 密码
-
database.tables 数据库.表 格式;如果是 . 表示所有数据库的所有表
-
-
查看用户权限
1
show grants for '#userName'@'#host';
-
撤销授权
1
REVOKE '#privilege' ON '#databasename'.'#tablename' FROM '#username'@'#host';
privilege 代表具体权限 比如: ALL select 等
注意用什么的语句授权就用什么样的语句收回权限,否则可能无法撤销权限
总结
Linux 系统中安装 Mariadb 想对与 Windows 上安装相对简单,只要熟悉 Linux 的基本操作,使用 dnf 源安装、设置 Mariadb 可以很快完成。
如果是在生产环境中安装 Mariadb 或者 Mysql 数据库,安装完成后,一定要做安全初始化,建议如下操作:
1. 设置 root 安全密码有大小写,字符等
2. 禁止远程 root 登录
3. 删除测试数据库
4. 删除匿名账户
5. 重新加载授权表