一、MariaDB 官网复制二进制包链接地址并下载解压

  • 下载

    1
    wget https://mirrors.tuna.tsinghua.edu.cn/mariadb//mariadb-10.4.6/bintar-linux-systemd-x86_64/mariadb-10.4.6-linux-systemd-x86_64.tar.gz
  • 解压到 /usr/local 目录下

    1
    tar -zxvf /<path>/mariadb-10.4.6-linux-systemd-x86_64.tar.gz -C /usr/local
  • 重命名为 mysql

    1
    mv mariadb-10.4.6-linux-systemd-x86_64 mysql

二、创建 MariaDB 安装目录、数据库存放目录、建立用户和目录

  • 创建用户组

    1
    groupadd -r mysql
  • 创建用户

    1
    useradd -r -g mysql -s /sbin/nologin -d /usr/local/mariadb -M mysql

-r : 添加系统用户 ( 这里指将要被创建的系统用户 mysql )
-g : 指定要创建的用户所属组( 这里指添加到新系统用户 mysqlmysql 系统用户组 )
-s : 新系统帐户的登录 shell ( /sbin/nologin 这里设置为将要被创建系统用户 mysql 不能用来登录系统 )
-d : 新帐户的主目录( 这里指定将要被创建的系统用户 mysql 的家目录为 /usr/local/mariadb )
-d : 不要创建用户的主目录( 也就是说将要被创建的系统用户 mysql 不会在 /home 目录下创建 mysql 家目录 )

  • 创建 Mariadb 安装目录

    1
    mkdir -p /usr/local/mysql
  • 创建 Mariadb 数据存放目录

    1
    mkdir -p /usr/local/mysql/data
  • 更改目录所属

    1
    2
    3
    cd /usr/local/mysql
    chown -R root .
    chown -R mysql data

执行安装

  1. 进入二进制包

    1
    cd mysql
  2. 安装

    初始化,默认情况不需要,若报错提示 mysql.user tables not exists 可执行该命令

    1
    scripts/mysql_install_db --user=mysql

出现错误 ./bin/mysqld: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
解决: yum whatprovides libstdc++.so.6 选最新的安装 yum install libstdc++-4.8.5-36.el7_6.2.i686 完成后再次允许上面的安装命令

3. 启动

1
2
3
./bin/mysqld_safe --user=mysql &
or
./bin/mysqld_safe --defaults-file=~/.my.cnf --user=mysql &

安装过程会持续很长时间
若编译过程中出现错误,根据错误提示,修正后删除 CMakeCache.txt 文件 再次执行 cmake 命令

配置 Mariadb

  • 进入目录

    1
    cd /usr/local/mysql
  • 设置自启动

  1. 方式一
    1
    2
    cp support-files/systemd/mariadb.service /usr/lib/systemd/system/mariadb.service
    systemctl enable mariadb

快捷启动 systemctl start mariadb
快捷关闭 systemctl stop mariadb
快捷重启 systemctl restart mariadb
2. 方式二

1
2
3
4
cp support-files/mysql.server /etc/init.d/mysql.server
/etc/init.d/mysql.server start
/etc/init.d/mysql.server stop
/etc/init.d/mysql.server restart
  • 设置外网可访问
  1. 修改绑定 IP

    默认情况绑定的是本地 IP,使用命令 netstat -lnp | grep 3306 结果是 0 :::33060 127.0.0.1:3306 此时无法外网访问(telnet不通),若结果是0 0.0.0.0:3306 则此步骤可省略

    1
    2
    3
    4
    5
    vim /etc/my.cnf
    # 添加如下内容 然后 Esc -> :wq 保存退出
    [mysqld]
    skip-networking=0
    skip-bind-address
  2. 授权用户可远程登录

    1
    2
    3
    4
    5
    6
    # 默认密码为空 回车即可
    bin/mysql -uroot -p


    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'my-new-password' WITH GRANT OPTION;
    FLUSH PRIVILEGES;

注意设置密码

  • 开放端口
    1
    2
    firewall-cmd --permanent --zone=public --add-port=3306/tcp
    firewall-cmd --reload

参考

  1. Installing MariaDB Binary Tarballs
  2. Configuring MariaDB for Remote Client Access