RHEL7使用国内yum源,安装Mariadb 10.2.25, 并配置字符集为utf8mb4

不打扰是莪最后的温柔 提交于 2020-03-26 01:48:09
目前阿里, 清华,163等镜像站的Mariadb都是5.5的,有些项目需要用到更新的版本,所以顺便安装一下10版本的,并记录过程
  • 添加中科大的Mariadb 10.2.25 yum源,并yum安装

    [mariadb]
    name = MariaDB
    baseurl = https://mirrors.ustc.edu.cn/mariadb/yum/10.2/centos7-amd64
    gpgkey = https://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
    gpgcheck=1
    # 需要重新生成yum 缓存,再安装
    yum clean all
    yum makecache all
    # 安装mariadb客户端,服务端
    yum install mariadb-server mariadb -y
    # 启动
    systemctl start mariadb  #启动 MariaDB
    systemctl enable mariadb  #设置开机启动
  • 初始化前注意

    在确认 MariaDB 数据库软件程序安装完毕并成功启动后请不要立即使用。为了确保数据 库的安全性和正常运转,需要先对数据库程序进行初始化操作。这个初始化操作涉及下面 5 个 步骤。
    ➢ 设置 root 管理员在数据库中的密码值(注意,该密码并非 root 管理员在系统中的密 码,这里的密码值默认应该为空,可直接按回车键)。
    ➢ 设置 root 管理员在数据库中的专有密码。
    ➢ 随后删除匿名账户,并使用 root 管理员从远程登录数据库,以确保数据库上运行的业
    务的安全性。
    ➢ 删除默认的测试数据库,取消测试数据库的一系列访问权限。
    ➢ 刷新授权列表,让初始化的设定立即生效。
  • 初始化命令

    mysql_secure_installation   # 确保mariadb服务器启动后,执行
  • Mariadb修改为中文编码且实时生效并永久保存,需要以下两个步骤

  • 数据库正在运行时修改(重启失效)

    # 在mariadb命令中设置
    MariaDB [(none)]>  SET NAMES 'utf8mb4';
    MariaDB [(none)]>  set character_set_server = utf8mb4;set character_set_database = utf8mb4;set collation_database = utf8mb4_general_ci ;set collation_server = utf8mb4_general_ci ;
  • 永久修改, /etc/my.cnf

    [client-server]
    [mysqld]
    character-set-server=utf8mb4
    collation-server=utf8mb4_unicode_ci
    log-error=/var/log/mysqld.log
    init-connect='SET NAMES utf8mb4'
    [client]
    default-character-set=utf8mb4
    [mysql]
    default-character-set=utf8mb4
  • 重启mariadb

    # stop关闭 mariadb,再start开启才生效, restart重启不行
    systemctl stop mariadb
    systemctl start mariadb
    # 查看修改后的字符编码集,已改为 utf8mb4
    show variables like "%character%";show variables like "%collation%";
    # 如果你的数据库中已经存在表了,建议进行修复一下
    mysqlcheck -u root -p --auto-repair --optimize --all-databases
  • mariadb基本命令

    # 1 远程链接mysql服务端
    mysql -uroot -p -h 192.168.1.2
    # 2 修改mysql密码
    MariaDB [(none)]> set password = PASSWORD('redhat123');
    # 3 创建mysql用户
    create user xiaoming@'%' identified by 'pw666';
    # 4 查询mysql库中的用户信息
    use mysql;
    select host,user,password from  user;
    # 5 创建数据库
    MariaDB [(none)]> create database demo
    # 6 创建表
    MariaDB [root]> create table test(id int,name char(32));
  • 数据库权限设置

    mysql使用grant命令对账户进行授权,grant命令常见格式如下
    grant 权限 on 数据库.表名 to 账户@主机名            对特定数据库中的特定表授权
    grant 权限 on 数据库.* to 账户@主机名              对特定数据库中的所有表给与授权
    grant 权限1,权限2,权限3 on *.* to 账户@主机名      对所有库中的所有表给与多个授权
    grant all privileges on *.* to 账户@主机名      对所有库和所有表授权所有权限
    [例]
    # 1 授予×××创建的权限,对于所有的库表生效
    grant create  on *.* to xiaoming@"%"  identified by 'xc666';
    # 2 授予×××用户,只有创建mymysql数据库的权限
    grant create  on mymysql.* to xiaoming@"%"  identified by 'xc666';
    # 3 授予用户最大的权限,所有的权限
    grant all privileges on *.* to username@'%' identified by 'password';
    # 4 移除权限
    MariaDB [(none)]> revoke all privileges on *.* from xiaoming@"%" identified by 'xc666';
  • 数据库的备份与恢复

    # 数据库命令备份
    mysqldump -u root -p --all-databases > /tmp/db.sql
    # 数据导入,方式有2种
    source /tmp/db.sql;
    或者
    mysql -uroot -p <  /tmp/db.sql 
    # 其他的备份工具
    navicat
    # 如果你数据量特别大的话,使用第三方工具
    xtrabackup
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!