zoukankan      html  css  js  c++  java
  • [Linux] centos7 安装Mariadb

    centos7 安装Mariadb

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

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

    # 我的系统环境
    [root@zzy ~]# cat /etc/redhat-release
    CentOS Linux release 7.7.1908 (Core)
    [root@zzy ~]# 
    
    

    1、安装MariaDB

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

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

    2、配置MariaDB

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

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

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

    [root@zzy ~]# 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@zzy ~]#  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)vi /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)vi /etc/my.cnf.d/client.cnf 文件

    在 [client] 标签下添加

    default-character-set=utf8
    

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

    在 [mysql] 标签下添加

    default-character-set=utf8
    

    4)重启服务

    [root@zzy ~]#  systemctl restart mariadb
    

    5)进入mariadb查看字符集

    img 未配置字符集前

    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)]>
    

    配置字符集后

    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)关闭防火墙

    ① 关闭防火墙 systemctl stop firewalld

    # 阿里云服务器需要配置安全组!
    [root@zzy ~]#  systemctl stop firewalld
    

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

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

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

    [root@zzy ~]#  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)
    

    3)将::1段改为 "%" ,%表示任意IP都可以访问

    MariaDB [mysql]> update user set host='%' where host='::1';
    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)
    

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

    MariaDB [mysql]> flush privileges;
    Query OK, 0 rows affected (0.00 sec)
    MariaDB [mysql]>exit
    [root@zzy ~]#  systemctl restart mariadb  #重启mysql
    

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

    6)重新远程链接mariadb

    • naviate软件:

      网盘链接:https://pan.baidu.com/s/1VVRcsMrfnb1lGlZCoICIwA 提取码:kier

    image-20201120161239899

    更多交流,请加QQ:390351113.请备注好友来自博客园<IT自学吧>
  • 相关阅读:
    模拟登陆江西理工大学教务系统
    python3爬虫 -----华东交大校园新闻爬取与数据分析
    以selenium模拟登陆12306
    PAT (Basic Level) Practice (中文)1076 Wifi密码 (15 分)
    PAT (Basic Level) Practice (中文)1047 编程团体赛 (20 分)
    PAT (Basic Level) Practice (中文)1029 旧键盘 (20 分)
    PAT (Basic Level) Practice (中文)1016 部分A+B (15 分)
    PAT (Basic Level) Practice (中文)1031 查验身份证 (15 分)
    PAT (Basic Level) Practice (中文)1041 考试座位号 (15 分)
    PAT (Basic Level) Practice (中文)1037 在霍格沃茨找零钱 (20 分)
  • 原文地址:https://www.cnblogs.com/itzixueba/p/13949469.html
Copyright © 2011-2022 走看看