什麼是mariadb?
MariaDB資料庫管理系統是MySQL的一個分支,主要由開源社群在
維護,採用GPL授權許可 MariaDB的目的是完全相容MySQL,包括API和
命令列,使之能輕鬆成為MySQL的代替品。在儲存引擎方面,使用XtraDB
(英語:XtraDB)來代替MySQL的InnoDB。 MariaDB由MySQL的
創始人Michael Widenius(英語:Michael Widenius)主導開發,他早
前曾以10億美元的價格,將自己建立的公司MySQL AB賣給了SUN,此後,
隨著SUN被甲骨文收購,MySQL的所有權也落入Oracle的手中。MariaDB
名稱來自Michael Widenius的女兒Maria的名字。
1.Mariadb安裝
1-1安裝mariadb和mariadb-client元件:
# yum groupinstall -y mariadb mariadb-client
1-2啟動mariadb服務:
# systemctl start mariadb ; systemctl enable mariadb
[root@server1 ~]# ss -antple|grep mysql
LISTEN 0 50 *:3306 *:*
users:(("mysqld",2622,13)) uid:27 ino:36479 sk:ffff8800235a0000 <->
1-4編輯/etc/my.cnf檔案,在[mysqld]中加入以下引數:
skip-networking=1
1-5# systemctl restart mariadb
# ss -antlp |grep mysql 此時只允許通過套接字檔案進行本地連線,阻斷
所有來自網路的tcp/ip連線。
2.使用mysql_secure_installation工具進行資料庫安全設定,根據提示完成
操作:
# mysql_secure_installation
[root@server1 ~]# mysql_secure_installation
/usr/bin/mysql_secure_installation: line 379: find_mysql_client: command not found
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we`ll need the current
password for the root user. If you`ve just installed MariaDB, and
you haven`t set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n]
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n]
... Success!
Normally, root should only be allowed to connect from `localhost`. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n]
... Success!
By default, MariaDB comes with a database named `test` that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n]
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n]
... Success!
Cleaning up...
All done! If you`ve completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
[root@server1 ~]#
3.登入資料庫:
# mysql -u root -p Enter password: redhat MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | +--------------------+ 3 rows in set (0.00 sec) MariaDB [(none)]> quit
4.資料庫基本操作SQL
show databases; 顯示資料庫 use mysql; 進入資料庫 show tables; 顯示資料庫中的表 desc user; 檢視user表的資料結構 flush privileges; 重新整理資料庫資訊 select host.user,password from user; 查詢user表中的host,user,password欄位 create database westos; 建立westos資料庫 use westos; create table linux( 建立表,username,password欄位 username varchar(15) not null, password varchar(15) not null ); select * from mysql.user; 查詢mysql庫下的user表中的所以 alter table linux add age varchar(4); 新增age欄位到linux表中 alter table linux drop age; alter table linux add age varchar(4) after username; show tables; desc linux; insert into linux values (`user1`,`passwd1`); 在linux表中插入值為username = user1,password = password1 update linux set password=password(`passwd2`) where username=user1; 更新linux表中user1 的密碼為password2 delete from linux where username=user1; 刪除linux表中user1的所以內容
5.mysql 密碼恢復
1)#systemctl stop mariadb
2)#mysql_safe --skip-grant &
3)#mysql
update mysql.user set password=password(`westos`) where user=`root`; 更新mysql.user 表中條件為root使用者的密碼為加密westos 4)killall -9 mysqld_safe ps -aux | grep mysql kill -9 **** 5)systemctl start mariadb
6.使用者和訪問許可權
建立使用者CREATE USER wxh@localhost identified by `westos`; CREATE USER lee@`%` identified by `redhat`;使用者授權GRANT INSERT,UPDATE,DELETE,SELECT on mariadb.* to wxh@localhost; GRANT SELECT on mariadb.* lee@`%`;過載授權表FLUSH PRIVILEGES;檢視使用者授權SHOW GRANTS FOR wxh@localhost;撤銷使用者許可權REVOKE DELETE,UPDATE,INSERT on mariadb.* from wxh@localhost;刪除使用者DROP USER wxh@localhost;
7.備份與恢復
備份# mysqldump -uroot -predhat westos > westos.dump # mysqldump -uroot -predhat --all-databases > backup.dump # mysqldump -uroot -predhat --no-data westos > westos.dump ##只備份框架,不備份資料。恢復# mysqladmin -uroot -predhat create db2 或 mysql -uroot -predhat -e `CREATE DATABASE db2;` # mysql -uroot -predhat db2 < westos.dump
8.網頁管理資料庫
1)裝軟體http,php,php-mysql (phpMyAdmin-3.4.0-all-languages) 2)cd /var/www/html 3)下載解壓php壓縮包, 4)mv phpMyAdmin-3.4.0-all-languages/ myadmin 5)cd myadmin/ 6)cp config.sample.inc.php config.inc.php vim config.inc.php $cfg[`blowfish_secret`] = ``; ==>$cfg[`blowfish_secret`] = `steven`; 7)systemctl restart httpd 8)172.252.254.X/myadmin
資料庫備份指令碼
#!/bin/bash HELLO=$1.`date +%Y-%m-%d`.sql read -p "please input your user name :" NAME read -s -p "please input the user password :" PASSWORD mkdir /mydata &>/dev/null touch /mydata/$HELLO mysqldump -u$NAME -p$PASSWORD $1 >/mydata/$HELLO echo -e " The backup successful!"
本文轉自willis_sun 51CTO部落格,原文連結:http://blog.51cto.com/willis/1850896,如需轉載請自行聯絡原作者