yum和源码编译安装的区别
1.路径区别-yum安装的软件是他自定义的,源码安装的软件./configure --preifx=软件安装的绝对路径
2.yum仓库的软件,版本可能比较低,而源码编译安装,版本可控
3.编译安装的软件,支持第三方功能扩展./configure 这里可以加上很多参数,定制功能

1.安装mariadb,配置官方的mariadb的yum源,手动创建 mariadb.repo仓库文件

添加MariaDB源

vi /etc/yum.repos.d/MariaDB.repo

粘贴官方的或者阿里云的镜像:

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.3/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
 
[mariadb]
name = MariaDB
baseurl = https://mirrors.aliyun.com/mariadb/yum/10.4/centos7-amd64/
gpgkey=https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1

2.如果下载速度太慢,请删除 mariadb.repo,只是为了使用阿里云的yum源中的mariadb

rm -rf /etc/yum.repos.d/Mariadb.repo
然后清空yum 缓存
yum clean all 

3.通过yum安装mariadb软件,安装mariadb服务端和客户端

官方 yum install MariaDB-server MariaDB-client -y
阿里云 yum install mariadb mariadb-server -y

4.安装完成后,启动mariadb服务端

systemctl  start/stop/restart/status  mariadb
systemctl enable mariadb   开机启动mariadb

5. mariadb初始化

# 这条命令可以初始化mysql,删除匿名用户,设置root密码等等....
mysql_secure_installation
 
1.输入当前密码,初次安装后是没有密码的,直接回车
2.询问是否使用 'unix_socket' 进行身份验证: n
3.为 root 设置密码:y
4.输入 root 的新密码: root
5.确认输入 root 的新密码: root
6.是否移除匿名用户,这个随意,建议删除: y
7.拒绝用户远程登录,这个建议开启:n
8.删除 test 库,可以保留:n
9.重新加载权限表:y

6. 设置mysql的中文编码支持,修改/etc/my.cnf

1.vi /etc/my.cnf
在[mysqld]中添加参数,使得mariadb服务端支持中文
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
 
2.重启mariadb服务,读取my.cnf新配置
systemctl restart mariadb 
 
3.登录数据库,查看字符编码
mysql -uroot -p
输入 \s  查看编码

7. mysql常用命

desc  #查看表结构
create database  #数据库名
create table  #表名
查看如何创建db的
show create  database  #库名
# 查看如何创建table结构的
show create table 表名;
 
# 修改mysql的密码
set password = PASSWORD('redhat');
 
# 创建mysql的普通用户,默认权限非常低
create user zhang@'%' identified by '123456';
 
# 查询mysql数据库中的用户信息
use mysql;
select host,user,password  from user;

7. 给用户添加权限命令

# 对所有库和所有表授权所有权限
grant all privileges on *.* to 账户@主机名
# 给zhang用户授予所有权限
grant all privileges on *.* to zhang@'%';  
# 刷新授权表
flush privileges; 

8. 给用户添加权限命令

# 给zhangsan用户授予所有权限
grant all privileges on *.* to zhangsan@'%';
# 给与root权限授予远程登录的命令
# 'centos这是密码随意设置
grant all privileges on *.* to root@'%' identified by '123456';  
# 此时可以在windows登录linux的数据库
# 连接服务器的mysql
mysql -uyining -p  -h  服务器的地址

9. 数据备份与恢复

# 导出当前数据库的所有db,到一个文件中
1.mysqldump -u root -p --all-databases > /data/AllMysql.dump
2.登录mysql 导入数据
mysql -u root -p
> source /data/AllMysql.dump
3.通过命令导入数据
# 在登录时候,导入数据文件,一样可以写入数据
mysql -uroot -p < /data/AllMysql.dump

10. 修改Mariadb存储路径

10.1 首先确定MariaDB数据库能正常运行,确定正常后关闭服务

systemctl  stop  mariadb

10.2 建立要更改数据存放的目录,如:我这单独分了一个区/data存放MariaDB的数据

mkdir /data/mysql_data 
chown -R mysql:mysql /data/mysql_data

10.3 复制默认数据存放文件夹到/data/mysql_data

cp -a /var/lib/mysql    /data/mysql_data

10.4 修改/etc/my.cnf.d/server.cnf

vim /etc/my.cnf.d/server.cnf

在[mysqld]标签下添加如下内容

datadir=/data/mysql_data/mysql
socket=/var/lib/mysql/mysql.sock
#default-character-set=utf8
character_set_server=utf8
slow_query_log=on
slow_query_log_file=/data/mysql_data/slow_query_log.log
long_query_time=2

10.5 配置MariaDB慢查询

touch /data/mysql_data/slow_query_log.log
chown mysql:mysql /data/mysql_data/slow_query_log.log

10.6 重启数据库

systemctl  start  mariadb

10.7 注意:

1、配置文件my.cnf存在,但是修改的并不是my.cnf,而是/etc/my.cnf.d/server.cnf;
2、并没有更改mysql.sock的路径配置;
3、没有修改/etc/init.d/mysql中的内容;
4、没有修改mysql_safe中的内容;
5、增加了数据库的慢查询配置。

11. Mariadb主从复制

在这里插入图片描述

11.1 主从库初始化

# 这条命令可以初始化mysql,删除匿名用户,设置root密码等等....
mysql_secure_installation
 
1.输入当前密码,初次安装后是没有密码的,直接回车
2.询问是否使用 'unix_socket' 进行身份验证: n
3.为 root 设置密码:y
4.输入 root 的新密码: root
5.确认输入 root 的新密码: root
6.是否移除匿名用户,这个随意,建议删除: y
7.拒绝用户远程登录,这个建议开启:n
8.删除 test 库,可以保留:n
9.重新加载权限表:y

11.2 修改主库配置

[root@mster mysql]# grep -Ev "^$|^#" /etc/my.cnf.d/server.cnf
[server]
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
server_id = 13    #  一组主从组里的每个id必须是唯一值。推荐用ip位数
log-bin= mysql-bin # 二进制日志,后面指定存放位置。如果只是指定名字,默认存放在/var/lib/mysql下
lower_case_table_names=1 # 不区分大小写
binlog-format=ROW    # 二进制日志文件格式
log-slave-updates=True    # slave更新是否记入日志
sync-master-info=1    # 值为1确保信息不会丢失
slave-parallel-threads=3 #同时启动多少个复制线程,最多与要复制的数据库数量相等即可
binlog-checksum=CRC32    # 效验码
master-verify-checksum=1    # 启动主服务器效验
slave-sql-verify-checksum=1   # 启动从服务器效验
[galera]
[embedded]
[mariadb]
[mariadb-10.6]
[root@mster-k8s mysql]# 

11.2 修改从库配置

[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
server_id=14
#log-bin= mysql-bin #log-bin是二进制文件
relay_log = relay-bin    # 中继日志, 后面指定存放位置。如果只是指定名字,默认存放在/var/lib/mysql下
lower_case_table_names=1

11.3 重启主库和从库服务

systemctl restart mariad

11.4 master节点配置

MariaDB [huawei]> grant replication slave, replication client on *.* to 'liu'@'%' identified by '123456';
Query OK, 0 rows affected (0.001 sec)

MariaDB [huawei]> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |     4990 |              |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.000 sec)

MariaDB [huawei]> select binlog_gtid_pos('mysql-bin.000001', 4990 );
+-------------------------------------------+
| binlog_gtid_pos('mysql-bin.000001', 4990) |
+-------------------------------------------+
| 0-13-80                                   |
+-------------------------------------------+
1 row in set (0.000 sec)

MariaDB [huawei]>  flush privileges;

11.5 slave节点配置

MariaDB [(none)]> set global gtid_slave_pos='0-13-80';
Query OK, 0 rows affected (0.004 sec)

MariaDB [(none)]>  change master to master_host='101.34.141.216',master_user='liu',master_password='123456',master_use_gtid=slave_pos;
Query OK, 0 rows affected (0.008 sec)

MariaDB [(none)]> start slave;
Query OK, 0 rows affected (0.005 sec)

MariaDB [(none)]> 

11.6 验证salve状态

MariaDB [(none)]> show slave status\G
*************************** 1. row ***************************
                Slave_IO_State: Waiting for master to send event
                   Master_Host: 101.34.141.216
                   Master_User: liu
                   Master_Port: 3306
                 Connect_Retry: 60
               Master_Log_File: mysql-bin.000001
           Read_Master_Log_Pos: 13260
                Relay_Log_File: relay-bin.000002
                 Relay_Log_Pos: 10246
         Relay_Master_Log_File: mysql-bin.000001
              Slave_IO_Running: Yes
             Slave_SQL_Running: Yes
               Replicate_Do_DB: 
           Replicate_Ignore_DB: 
            Replicate_Do_Table: 
        Replicate_Ignore_Table: 
       Replicate_Wild_Do_Table: 
   Replicate_Wild_Ignore_Table: 
                    Last_Errno: 0
                    Last_Error: 
                  Skip_Counter: 0
           Exec_Master_Log_Pos: 13260
               Relay_Log_Space: 10549
               Until_Condition: None
                Until_Log_File: 
                 Until_Log_Pos: 0
            Master_SSL_Allowed: No
            Master_SSL_CA_File:
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐