CentOS安装MariaDB数据库,修改字符集


MariaDB 与 MySQL

    MariaDB不仅仅是MySQL的一个替代品,它的主要目的是创新和提高MySQL的技术。开源,完全免费。
    CentOS 6 或早期的版本中提供的是 MySQL 的服务器/客户端安装包,但 CentOS 7 已使用了 MariaDB 替代了默认的 MySQL。MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。

Linux下安装MariaDB官方文档参见:https://mariadb.com/resources/blog/installing-mariadb-10-on-centos-7-rhel-7/


安装MariaDB最新版本

删除原有的软件包

  1. 使用搜索 MariaDB 现有的包,一般会搜到mariadb-libs-5.5.60-1.el7_5.x86_64

    1
     rpm -qa | grep mariadb
    
  2. 如果存在,使用全部删除

    1
    2
    3
     rpm -e --nodeps mariadb-*
     //或者
     rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
    

配置yum源

  1. 使用源配置向导
    https://downloads.mariadb.org/mariadb/repositories
        可以选择合适的操作系统和想要安装的MariaDB版本,然后自动生成源配置。

  2. 配置yum源

    1
    2
     cd /etc/yum.repos.d/
     vim MariaDB.repo
    

    将上面红框中的内容复制进去,保存退出。

安装MariaDB

  1. 安装

    1
     yum install MariaDB-server MariaDB-client
    

        如果出现了” MariaDB can’t be installed because of conflict with mariadb-libs-xxxx “,则需要先卸载当前安装的版本:

    1
     yum remove mariadb-libs*
    

        安装完成后,会提示你为root设置密码,此时需要先运行MariaDB。

        运行 MariaDB

    1
     service mysql start
    

        输出:

    1
     Starting mysql (via systemctl): [ OK ]
    
  2. 初始配置 MariaDB

    1
     mysql_secure_installation
    

        如果出现error: 'Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2 "No such file or directory")',则说明MariaDB没有启动,需要先运行MariaDB,参考第4步。

    1
    2
    3
    4
    5
    6
     Enter current password for root (enter for none):  //输入当前的root密码(默认空),直接回车
     Set root password? [Y/n]  //设置新密码,y
     Remove anonymous users? [Y/n]  //移除匿名用户,y
     Disallow root login remotely? [Y/n]  //禁止root用户远程登录,y
     Remove test database and access to it? [Y/n]  //移除测试数据库,y
     Reload privilege tables now? [Y/n]  //重新加载特权表,y
    
  3. 常用命令

    1
    2
    3
    4
    5
    6
    7
    8
    9
     systemctl start mariadb           #启动服务
     systemctl enable mariadb          #设置开机启动
     systemctl restart mariadb         #重新启动
     systemctl stop mariadb.service    #停止MariaDB
    
     //进入数据库(本地登陆不需输入账号密码,默认root)
     mysql 
     //若需要账号密码
     mysql -u root -p
    

  参考 CentOS 7 安装 MariaDB 10.1


MariaDB修改默认字符编码

进入MariaDB查看默认字符集

1
2
show variables like "%character%";
show variables like "%collation%";

    如图,需要将红框中的内容改为utf-8。

修改配置文件

    查看 /etc/my.cnf 文件内容,其中包含一句!includedir /etc/my.cnf.d,说明在该配置文件中引入 /etc/my.cnf.d 目录下的配置文件。

  1. 编辑 /etc/my.cnf.d 目录下的 server.cnf 文件,在 [mysqld] 标签下添加:

    1
    2
    3
    4
    5
     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
    

         如果 /etc/my.cnf.d 目录下无 server.cnf 文件,则直接在 /etc/my.cnf 文件的 [mysqld] 标签下添加以上内容。

  2. 在 /etc/my.cnf.d/client.cnf (没有就跳过)文件中的 [client] 中添加:

    1
    1
     default-character-set=utf8
    
  3. 在文件 /etc/my.cnf.d/mysql-clients.cnf 中的 [mysql] 中添加:

    1
    1
     default-character-set=utf8
    
  4. 全部配置完成,重启mariadb

    1
     systemctl restart mariadb
    
  5. 进入MariaDB查看字符集

    1
    2
     show variables like "%character%";
     show variables like "%collation%";
    

    显示为 字符集配置完成。

参考 CentOS7下使用yum安装MariaDB

测试

  设置完成后可一创建一张表测试一下

1
2
3
4
create database test;
use test;
create table t1(id int primary key, name varchar(10));
show create table t1;

  结果如下图,说明设置正确

     注意:已经创建的表的编码并不会被修改,设置只对之后创建的表有用


0%