Linux安装MariaDB10.4

1.卸载之前的mysql、mariadb

查询yum安装的mysql、mariadb

rpm -qa | grep -i mysql
rpm -qa | grep -i mariadb

在这里插入图片描述
使用yum remove xxx卸载
例:yum remove mysql-community-server-5.6.51-2.el7.x86_64

查询安装包安装的mysql、mariadb

which mysql
which mariadb

在这里插入图片描述
将相关文件夹删除即可
例:rm -rf /usr/bin/mysql

查询mysql、mariadb相关文件夹

find / -name mysql

在这里插入图片描述
用rm命令删除相关文件夹即可

查看mysql进程

ps -aux | grep mysql

在这里插入图片描述

用kill -9 杀掉mysql进程
例:kill -9 10747

到这里mysql几乎被卸载干净了

2.下载、解压安装包

进入MariaDB官网(https://mariadb.org/),点击下载
这个10.4.27这个版本是1G,官网下载可能比较慢,如果有百度云会员的话可以用我的网盘链接下载(链接:https://pan.baidu.com/s/1t8PtW8Ydp3BzYiCDYhXhrw?pwd=6666
提取码:6666

在这里插入图片描述
选择对应的版本下载
在这里插入图片描述
将下载完成的包上传到linux机器
在这里插入图片描述

使用tar命令解压安装包

tar -zxvf mariadb-10.4.27-linux-systemd-x86_64.tar.gz

等待解压完成后会出现一个与安装包同名的文件夹
在这里插入图片描述

3.配置

将解压出来的文件夹复制到你希望保存的路径(本例使用:/var/lib/)

cp mariadb-10.4.27-linux-systemd-x86_64 /var/lib/

将文件夹改名为mysql

mv /var/lib/mariadb-10.4.27-linux-systemd-x86_64 mysql

将mysql文件夹下的 wsrep.cnf文件复制到/etc下

cp /var/lib/mysql/support-files/wsrep.cnf  /etc/

改名为my.cnf,作为MariaDB的配置文件

mv /etc/wsrep.cnf my.cnf

编辑配置文件

vim /etc/my.cnf

在这里插入图片描述
说明:
basedir是MariaDB所在路径,本例是/var/lib/mysql
datadir是MariaDB存放数据的路径(自定义),本例是/var/lib/mysql/data

创建MariaDB存放数据的文件夹,本例是/var/lib/mysql/data

mkdir -p /var/lib/mysql/data

赋予MariaDB文件夹(/var/lib/mysql)一定的操作权限,不然在后面执行初始化脚本的时候会因为权限问题无法读写,保险起见,我赋予整个文件夹读、写、执行的权限。

chmod -R 777 /var/lib/mysql/

初始化数据库

/var/lib/mysql/scripts/mysql_install_db --datadir=/var/lib/mysql/data/ --basedir=/var/lib/mysql --defaults-file=/etc/my.cnf --user=mysql

注意:

  1. mysql_install_db这个初始化脚本一定要以绝对路径的方式调用启动,否则会

报“my_print_defaults找不到”的错误,这个原因是mysql_install_db脚本自身的bug

  1. –basedir是MariaDB所在路径,本例是/var/lib/mysql

  2. –datadir是MariaDB存放数据的路径,本例是/var/lib/mysql/data

  3. –defaults-file是配置文件的路径

  4. –user是前面useradd 命令添加的用户,本例添加的用户名是mysql

4.创建启动脚本

将MariaDB文件夹下的support-files/mysql.server复制到/etc/init.d下

cp /var/lib/mysql/support-files/mysql.server  /etc/init.d/mysqld

编辑脚本,找到basedir、datadir并修改

vim /etc/init.d/mysqld

在这里插入图片描述

basedir是MariaDB所在路径,本例是/var/lib/mysql

datadir是MariaDB存放数据的路径(自定义),本例是/var/lib/mysql/data

5. 启动MariaDB

systemctl start mysqld

6. 设置mysql用户

进入MariaDB

mysql -u root

注意:

  1. 由于此时root未设置密码,如果显示要输入密码,回车即可

  2. 若出现
    在这里插入图片描述
    则使用mysql -u root -p,密码回车即可进入
    在这里插入图片描述
    创建用户

CREATE USER 'lgy'@'%' IDENTIFIED BY 'lgy';

注意:

  1. @前面的’lgy’是用户名

  2. @后面的’%’ 是允许登录的主机,‘%’ 表示允许任意主机登录,'127.0.0.1’表示允许本机登录

给用户授权,并刷新权限

grant all privileges on . to ‘lgy’@‘%’ identified by ‘lgy’ with grant option;

flush privileges;

说明:

  1. on *.*表示所有数据库的所有表

  2. all privileges代表赋予所有权限

重启MariaDB

systemctl restart mysqld

防火墙开放MariaDB端口(本例是3306)

firewall-cmd --zone=public --add-port=3306/tcp --permanent

重启防火墙

firewall-cmd --reload

使用刚刚创建的用户测试连接数据库
创建用户

CREATE USER ‘lgy’@‘%’ IDENTIFIED BY ‘lgy’;

注意:

  1. @前面的’lgy’是用户名

  2. @后面的’%’ 是允许登录的主机,‘%’ 表示允许任意主机登录,'127.0.0.1’表示允许本机登录

给用户授权,并刷新权限

grant all privileges on . to ‘lgy’@‘%’ identified by ‘lgy’ with grant option;

flush privileges;

注意:

  1. on *.*表示所有数据库的所有表

  2. all privileges代表赋予所有权限

重启MariaDB

systemctl restart mysqld

防火墙开放MariaDB端口(本例是3306)

firewall-cmd --zone=public --add-port=3306/tcp --permanent

重启防火墙

firewall-cmd --reload

使用刚刚创建的用户测试连接数据库
在这里插入图片描述

7. 服务启动/停止方式

启动:systemctl start mysqld

重新启动:systemctl restart mysqld

查看状态:systemctl status mysqld

停止:systemctl stop mysqld

可能遇到的问题:

问题1:在执行sql语句时,出现“operation XXX failed”操作失败,如下图
在这里插入图片描述
解决方法:

  1. 刷新权限 => flush privileges;

  2. 再执行之前的sql语句

问题2:在启动MariaDB时,即systemctl start mysqld后,很长一段时间没有反应,使用systemctl status mysqld查看,长时间处于activating,随后启动失败。并且从错误日志中只发现连接超时(mysqld.service start operation timed out.),没有报任何错误。

解决方法:可能是配置文件格式有误。

  1. 将旧的配置文件备份

  2. 从MariaDB文件夹下的support-files/wsrep.cnf 拷贝到 /etc

cp /var/lib/mysql/support-files/wsrep.cnf  /etc/
  1. 编辑好配置文件后,重启mariadb
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值