第5天
mariadb 数据库
基础操作
安装 mariadb
[root@server ~]# yum -y install mariadb mariadb-server
启动 mariadb 服务
[root@server ~]# systemctl restart mariadb
初始化
设置 root 密码,移除匿名用户,关闭远程访问等一系列安全操作
[root@server ~]# mysql_secure_installation
用数据库的root用户登录,密码为redhat
[root@server ~]# mysql -uroot -predhat
查看数据库
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
创建数据库
MariaDB [(none)]> create database testsql;
使用数据库
MariaDB [(none)]> use testsql;
MariaDB [testsql]>
查看数据表
MariaDB [testsql]> show tables;
创建表
MariaDB [testsql]> create table user(id int(3),name varchar(30));
插入数据
MariaDB [testsql]> insert into user values(1,'zhangsan');
MariaDB [testsql]> insert into user values(2,'lisi');
MariaDB [testsql]> insert into user values(3,'wangwu');
查看表中数据
MariaDB [testsql]> select * from user;
+------+----------+
| id | name |
+------+----------+
| 1 | zhangsan |
| 2 | lisi |
| 3 | wangwu |
+------+----------+
删除id为1的数据
MariaDB [testsql]> delete from user where id=1;
MariaDB [testsql]> select * from user;
+------+--------+
| id | name |
+------+--------+
| 2 | lisi |
| 3 | wangwu |
+------+--------+
更新id为3的数据name字段为zhaoliu
MariaDB [testsql]> update user set name="zhaoliu" where id=3;
MariaDB [testsql]> select * from user;
+------+---------+
| id | name |
+------+---------+
| 2 | lisi |
| 3 | zhaoliu |
+------+---------+
删除数据表
MariaDB [testsql]> drop table user;
删除testsql数据库
MariaDB [testsql]> drop database testsql;
创建数据库用户
MariaDB [(none)]> create user testuser@localhost identified by '1234';
赋予用户权限
MariaDB [(none)]> grant select,insert,update,delete on testsql.* to testuser@localhost;
撤销用户权限
MariaDB [(none)]> revoke select,insert,update,delete on testsql.* from testuser@localhost;
删除用户
MariaDB [(none)]> delete from mysql.user where user='testuser';
刷新权限
MariaDB [(none)]> flush privileges;
重置 mariadb root 密码
编辑 my.cnf 文件
[root@desktop ~]# vim /etc/my.cnf
[mysqld]
# 添加skip-grant-tables即可,修改完密码后删除此行
skip-grant-tables
重启服务,重新加载配置文件
[root@desktop ~]# systemctl restart mariadb
直接无密码登录
[root@desktop ~]# mysql
MariaDB [(none)]>
修改root密码
MariaDB [(none)]> update mysql.user set password=password('root') where user='root';
刷新权限
MariaDB [(none)]> flush privileges;
用新密码登录
修改完密码记得删除 my.cnf 文件里的 skip-grant-tables
[root@desktop ~]# mysql -uroot -proot
MariaDB [(none)]>
mariadb 主从复制
master
开启二进制日志
[root@server ~]# vim /etc/my.cnf
[mysqld]
... ...
server-id=11
log-bin=/var/lib/mysql/master_bin_log
binlog_format=mixed
[root@server ~]# systemctl restart mariadb
创建同步账号
[root@server ~]# mysql -uroot -predhat
MariaDB [(none)]> grant replication slave on *.* to 'slave'@'%' identified by 'redhat';
MariaDB [(none)]> flush privileges;
备份数据库,查看 log 文件及位置
MariaDB [(none)]> flush tables with read lock;
[root@server ~]# mysqldump -uroot -predhat --all-databases > bakdb.sql
MariaDB [(none)]> show master status;
+----------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+----------------------+----------+--------------+------------------+
| master_bin_log.000001 | 328 | | |
+----------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
MariaDB [(none)]> unlock tables;
slave
开启二进制日志
[root@desktop ~]# vim /etc/my.cnf
[mysqld]
... ...
server-id=10
relay-log=/var/lib/mysql/slave_bin_log
[root@desktop ~]# systemctl restart mariadb
导入备份数据
[root@desktop ~]# scp root@192.168.3.11:/root/bakdb.sql .
[root@desktop ~]# mysql -uroot -predhat < bakdb.sql
开启 slave
MariaDB [(none)]> change master to master_host='192.168.3.11',master_user='slave',master_password='redhat',master_log_file='master_bin_log.000001',master_log_pos=328;
MariaDB [(none)]> start slave;
MariaDB [(none)]> show slave status\G
... ...
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
... ...