RHCE7認證學習筆記36——MariaDB資料庫配置與管理

luashin發表於2016-02-12

MariaDB資料庫的操作使用與MySQL基本相同。

一、配置

安裝MariaDB資料庫

[root@linuxidc ~]# yum install mariadb\* -y

啟動mariadb服務:

[root@linuxidc ~]# systemctl start mariadb

防火牆新增mysql服務:

[root@linuxidc ~]# firewall-cmd --add-service=mysql --permanent

修改配置檔案/etc//my.cnf檔案,新增以下編解內容:

character-set-server=utf8

資料庫檔案儲存位置:

datadir=/var/lib/mysql

二、管理資料庫

檢視資料庫:

MariaDB [(none)]> show databases;

檢視當前資料庫:

MariaDB [(none)]> select database();

檢視當前使用者:

MariaDB [(none)]> select user();

檢視資料庫當前的所有屬性資訊:

MariaDB [(none)]> status

進入資料庫:

MariaDB [(none)]> use school;

顯示錶:

1  MariaDB [school]> show tables;

建立表:

MariaDB [school]> create table teacher(id int,name varchar(10),gender varchar(5) )

檢視錶結構:

MariaDB [school]> desc teacher;

查詢和插入表資料:

1  MariaDB [school]> select * from teacher;

MariaDB [school]> insert into teacher values('1','lisi','male');

清空表內容:

MariaDB [school]> truncate table teacher;

新增列:

MariaDB [school]> alter table teacher add department varchar(20) [first|after column];

刪除列:

MariaDB [school]> alter table teacher drop department;

外和內連線:

MariaDB [school]> select * from teacher  join student using(id);

MariaDB [school]> select * from teacher inner join student where a.id=b.id;

三、配置資料庫

使用者管理:

MariaDB [(none)]> use mysql;

MariaDB [mysql]> desc users;

MariaDB [mysql]> select host,user,password from user;

給使用者root設定密碼的方法:

1、[root@linuxidc ~]# mysqladmin -uroot -p password ''

2、[MariaDB [(none)]> set password=password('redhat');

3、[MariaDB [(none)]> update mysql.user set password=password('redhat') where user='root' and host='localhost';

[MariaDB [(none)]> flush privileges;

忘記root密碼重新設定密碼,使用以下2種方式重新修改密碼:

1、修改my.cnf檔案,加入以下語句:

skip-grant-tables

直接進入資料庫無需密碼,然後執行以下修改密碼的命令:

MariaDB [(none)]> update mysql.user set password=password('redhat') where user='root' and host='localhost';

MariaDB [(none)]> flush privileges;

2、使用mysqld-safe命令修改密碼

先停止mysqld服務,再修改密碼:

[root@linuxidc ~]# systemctl stop mariadb.service

[root@linuxidc ~]# mysqld_safe --skip-grant-tables

[MariaDB [(none)]> update mysql.user set password=password('redhat') where user='root' and host='localhost';

[MariaDB [(none)]> flush privileges;

建立普通使用者並設定密碼:

[MariaDB [(none)]> create user ;

[MariaDB [(none)]> create user ;任意主機

[MariaDB [(none)]> set password for );

給使用者設定許可權:

檢視使用者的許可權:

[MariaDB [(none)]> show grants for redhat;

檢視系統的所有許可權:

[MariaDB [(none)]> show privileges;

授權給使用者:

[MariaDB [(none)]> grant create,insert,drop,update on school.* to  identified by 'redhat';

回收許可權:

[MariaDB [(none)]> revoke drop,update on school.* from redhat;

四、資料庫的備份與恢復

冷備份:停機備份資料庫檔案;

熱備份:

使用mysqldump命令備份:

[root@linuxidc ~]# mysqldump -u root -p school teacher student> /mysql_backup/teacher.sql

備份整個資料庫表,後面則不需要指定任何表:             

[root@linuxidc ~]# mysqldump -u root -p school> /mysql_backup/all_tables.sql

備份整個資料庫:

[root@linuxidc ~]# mysqldump -u root -p -B school> /mysql_backup/all.sql

進入庫恢復表或者恢復表:     

MariaDB [school]> source /mysql_backup/teacher.sql;

[root@linuxidc ~]# mysql -u root -p'redhat' < /mysql_backup/all.sql

將表資料儲存到檔案,修改備份目錄的屬主屬組資訊:

[root@linuxidc ~]# setfacl -m u:mysql:rwx /mysql_backup/

MariaDB [school]> select * from teacher into outfile '/mysql_backup/teacher_data'fields terminated by ',';

根據外部檔案恢復表資料:

[MariaDB [school]> load data infile '/mysql_backup/teacher_data' into table teacher fields terminated by ',';

mysqldump不能做增量備份。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9034054/viewspace-1988091/,如需轉載,請註明出處,否則將追究法律責任。

相關文章