欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

centos7 安装Mariadb

程序员文章站 2022-09-24 11:21:20
MariaDB 数据库管理系统是 MySQL 的一个分支,主要由开源社区在维护,采用 GPL 授权许可。开发这个分支的原因之一是:甲骨文公司收购了 MySQL 后,有将 MySQL 闭源的潜在风险,因此社区采用分支的方式来避开这个风险。MariaDB完全兼容mysql,使用方法也是一样的 有的cen ......

 

mariadb 数据库管理系统是 mysql 的一个分支,主要由开源社区在维护,采用 gpl 授权许可。开发这个分支的原因之一是:甲骨文公司收购了 mysql 后,有将 mysql 闭源的潜在风险,因此社区采用分支的方式来避开这个风险。mariadb完全兼容mysql,使用方法也是一样的

有的centos7已经默认安装了mariadb,可以查看自己的有没有安装,没有安装的再进行安装,已经安装了可以不用安装也可以卸载了重装。卸载命令 yum remove mariadb-server

centos7  安装Mariadb
1 [root@mini ~]# cat /etc/redhat-release
2 centos linux release 7.5.1804 (core)
3 [root@mini ~]#
我的系统环境

 

1、安装mariadb

 通过yum安装就行了。简单快捷,安装mariadb-server,默认依赖安装mariadb,一个是服务端、一个是客户端。

[root@mini ~]# yum install mariadb-server

 

2、配置mariadb

1)安装完成后首先要把mariadb服务开启,并设置为开机启动

[root@mini ~]# systemctl start mariadb  # 开启服务
[root@mini ~]# systemctl enable mariadb  # 设置为开机自启动服务

2)首次安装需要进行数据库的配置,命令都和mysql的一样

[root@mini ~]# mysql_secure_installation

 3)配置时出现的各个选项

enter current password for root (enter for none):  # 输入数据库超级管理员root的密码(注意不是系统root的密码),第一次进入还没有设置密码则直接回车

set root password? [y/n]  # 设置密码,y

new password:  # 新密码
re-enter new password:  # 再次输入密码

remove anonymous users? [y/n]  # 移除匿名用户, y

disallow root login remotely? [y/n]  # 拒绝root远程登录,n,不管y/n,都会拒绝root远程登录

remove test database and access to it? [y/n]  # 删除test数据库,y:删除。n:不删除,数据库中会有一个test数据库,一般不需要

reload privilege tables now? [y/n]  # 重新加载权限表,y。或者重启服务也许

4)测试是否能够登录成功,出现  mariadb [(none)]> 就表示已经能够正常登录使用mariadb数据库了

[root@mini ~]# mysql -u root -p
enter password:
welcome to the mariadb monitor.  commands end with ; or \g.
your mariadb connection id is 8
server version: 5.5.60-mariadb mariadb server

copyright (c) 2000, 2018, oracle, mariadb corporation ab and others.

type 'help;' or '\h' for help. type '\c' to clear the current input statement.

mariadb [(none)]>

 

3、设置mariadb字符集为utf-8

 1)/etc/my.cnf 文件

在  [mysqld]  标签下添加

init_connect='set collation_connection = utf8_unicode_ci'
init_connect='set names utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake

2)/etc/my.cnf.d/client.cnf 文件

在  [client]  标签下添加

default-character-set=utf8

3)/etc/my.cnf.d/mysql-clients.cnf  文件

在  [mysql]  标签下添加

default-character-set=utf8

4)重启服务

[root@mini ~]# systemctl restart mariadb

5)进入mariadb查看字符集

centos7  安装Mariadb
mariadb [(none)]> show variables like "%character%";show variables like "%collation%";
+--------------------------+----------------------------+
| variable_name            | value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.01 sec)

+----------------------+-------------------+
| variable_name        | value             |
+----------------------+-------------------+
| collation_connection | utf8_general_ci   |
| collation_database   | latin1_swedish_ci |
| collation_server     | latin1_swedish_ci |
+----------------------+-------------------+
3 rows in set (0.00 sec)

mariadb [(none)]>
未配置字符集前
centos7  安装Mariadb
mariadb [(none)]> show variables like "%character%";show variables like "%collation%";
+--------------------------+----------------------------+
| variable_name            | value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

+----------------------+-----------------+
| variable_name        | value           |
+----------------------+-----------------+
| collation_connection | utf8_unicode_ci |
| collation_database   | utf8_unicode_ci |
| collation_server     | utf8_unicode_ci |
+----------------------+-----------------+
3 rows in set (0.00 sec)

mariadb [(none)]>
配置字符集后

 

4、远程链接mariadb数据库

mariadb默认是拒绝 root 远程登录的。这里用的是 navicat 软件连接数据库

1)出现以下的情况是因为链接被防火墙拦截了。

centos7  安装Mariadb

解决方法:

① 关闭防火墙 systemctl stop firewalld 

[root@mini ~]# systemctl stop firewalld

② 在不关闭防火墙的情况下,允许某端口的外来链接。步骤如下,开启3306端口,重启防火墙

[root@mini ~]# firewall-cmd --query-port=3306/tcp  # 查看3306端口是否开启
no
[root@mini ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent  # 开启3306端口
success
[root@mini ~]# firewall-cmd --reload  # 重启防火墙
success
[root@mini ~]# firewall-cmd --query-port=3306/tcp  # 查看3306端口是否开启
yes

2)出现以下的情况很正常,因为mariadb拒绝远程登陆

centos7  安装Mariadb

3)先查看mysql数据库中的user表

[root@mini ~]# mysql -u root -p  # 先通过本地链接进入数据库

mariadb [(none)]> use mysql;

mariadb [mysql]> select host, user from user;
+-----------+------+
| host      | user |
+-----------+------+
| 127.0.0.1 | root |
| ::1       | root |
| mini      | root |
+-----------+------+
3 rows in set (0.00 sec)

4)将与主机名相等的字段改为 "%" ,我的主机名为mini,

mariadb [mysql]> update user set host='%' where host='mini';
query ok, 1 row affected (0.00 sec)
rows matched: 1  changed: 1  warnings: 0

mariadb [mysql]> select host, user from user;
+-----------+------+
| host      | user |
+-----------+------+
| %         | root |
| 127.0.0.1 | root |
| localhost | root |
+-----------+------+
3 rows in set (0.00 sec)

5)刷新权限表,或重启mariadb服务,一下二选一即可

mariadb [mysql]> flush privileges;
query ok, 0 rows affected (0.00 sec)
[root@mini ~]# systemctl restart mariadb

注意:刷新权限表是在数据库中,重启服务是在外部命令行中

 

6)重新远程链接mariadb

 centos7  安装Mariadb