1. 程式人生 > >MySQL 資料庫服務

MySQL 資料庫服務

1、什麼是關係型資料庫。
a、二維表格
b、mysql和oracle資料庫,網際網路運維最常用的是mysql。
c、通過SQL結構化查詢語句存取資料。
d、保持資料一致性方面很強。ACID理論。
特點:讀寫更多的是和磁碟打交道,資料一致性,安全
缺點:速度慢。
2、NOSQL非關係型資料庫小結:
a、NOSQL不是否定關係資料庫,而是作為關係資料庫的一個重要補充。
b、NOSQL為了高效能。高併發而生的。
c、NOSQL典型產品memcached(純記憶體),redis(永續性快取),mongodb(文件資料庫)
3、linux下軟體的安裝方式:
1)、yum/rpm 安裝;簡單、快,但是無法定製。
2)、編譯安裝;./configure;make;make install 複雜,速度慢,可定製。
針對mysql,第一條產品線的編譯方式5.0--5.1
mysql 5.5以上(mysql-5.5.32.tar.gz)編譯安裝,./cmake ;gmake;gmake install
3)、二進位制包安裝**

解壓就能用(綠色軟體,無需安裝) 簡單,快,不好定製。
安裝mysql選:二進位制包 mysql-5.5.32-linux2.6-x86_64.tar.gz
4)原始碼軟體結合 /yum/rpm來安裝。把原始碼軟體製作成符合要求的rpm 包,放到yum倉庫裡,然後通過yum來安裝。特點:安裝快速,可定製。**
4、安裝mysql步驟:
a、新增mysql使用者
useradd mysql -s /sbin/nologin -M
b、下載解壓軟體

    [[email protected] ~]# cd /home/oldboy/tools/
    [[email protected] tools]# tar xf mysql-5.5.32-linux2.6-x86_64.tar.gz
    [
[email protected]
tools]# mv mysql-5.5.32-linux2.6-x86_64 /application/mysql-5.5.32 #移到/application下 [[email protected] tools]# ln -s /application/mysql-5.5.32/ /application/mysql

c、初始化資料庫
[[email protected] tools]# /application/mysql/scripts/mysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data/ --user=mysql


d、授權mysql管理資料庫檔案
chown -R mysql.mysql /application/mysql/
e、生成mysql配置檔案
[[email protected] mysql]# cp /application/mysql/support-files/my-small.cnf /etc/my.cnf
5、配置啟動mysql

  [[email protected] mysql]# sed -i 's#/usr/local/mysql#/application/mysql#g' /application/mysql/bin/mysqld_safe                                              #改變mysql目錄
  [[email protected] mysql]# /application/mysql/bin/mysqld_safe &    #啟動mysql服務

6、配置傳統方式啟動mysql

  a、[[email protected] mysql]# cp support-files/mysql.server /etc/init.d/mysqld  #將mysql的配置檔案複製到/etc/init.d目錄下。
  b、[[email protected] mysql]# sed -i 's#/usr/local/mysql#/application/mysql#g' /etc/init.d/mysqld  #改變mysql的目錄。
  c、[[email protected] mysql]# chmod +x /etc/init.d/mysqld    #增加執行許可權
  d、[[email protected] mysql]# /etc/init.d/mysqld start
  e、[[email protected] mysql]# chkconfig mysqld on  #加入開機自啟動
  f、 cp /application/mysql/bin/* /usr/local/sbin/  #將mysql啟動命令拷貝到bash裡。

7、mysql設定密碼和登入及更改密碼
設定密碼:mysqladmin -uroot password "123456"
登入mysql:mysql -uroot -p123456
更改密碼:mysqladmin -uroot -p123456 password "oldboy"
8、mysql簡單安全優化
登入到mysql下:檢視庫 show databases;
刪除不用的庫 drop database test;
檢視使用者和主機 select user,host from mysql.user; 使用者和主機共同標識一個使用者。
刪除無用使用者 drop user 'root'@'lnmp02';
mysql> drop user ''@'lnmp02';
mysql> drop user ''@'localhost';
mysql> drop user 'root'@'::1';
如果遇到主機是大寫或特殊字元:
delete from mysql.user where user="root" and host="A"
刪除之後執行:flush privileges;重新整理許可權

9、mysql簡單命令
檢視幫助:help 例 help show databases;
查所有的庫:show databases; ========>ls
切庫:user mysql; ========>cd
查表:show tables;
檢視使用者列表:select user,host from mysql.user;
檢視當前使用者:select user(); ========>whoami
檢視當前所在庫:select database(); =========>pwd
刪除資料庫:drop database 庫名;
刪除使用者:drop user ’使用者‘@’主機‘;
10、檢視mysql錯誤日誌
ll /application/mysql/data/mysql-server.err
11、將LNMP裡的mysql資料分離到單獨的mysql裡。
mysqldump是最常用的備份工具:(選擇邏輯備份,安全)
1)、邏輯備份:原理是將資料庫的資料以邏輯的SQL語句的方式匯出。
2)、物理備份:scp /application/mysql/data/ 把整個目錄打包拷貝到獨立的資料庫就可以。(缺點:容易丟資料)
xtrabackup是開源的物理備份工具。
首先將lnmp裡的資料庫資料備份起來壓縮。

[[email protected] ~]# mysqldump -uroot -p123456 -B -x wordpress|gzip>/opt/bak_wordpress_$(date +%F).sql.gz
[[email protected] ~]# ll /opt/
總用量 188
-rw-r--r--  1 root root 187680 12月 28 13:16 bak_wordpress_2017-12-28.sql.gz
drwxr-xr-x. 2 root root   4096 3月  26 2015 rh

mysqldump的引數:-A 備份資料庫
-B 備份多個庫,並新增 use 庫名;create databases庫等的備份。
-x 鎖表,備份期間會影響讀寫,儘量晚上執行。
|gzip 壓縮效率高。
sql.gz 表示sql語句資料,.gz是壓縮包。
然後在獨立mysql的伺服器上讓資料庫恢復:

[[email protected] ~]# cd /opt/
[[email protected] opt]# ll
總用量 188
-rw-r--r--  1 root root 187681 12月 28 2017 bak_wordpress_2017-12-28.sql.gz
drwxr-xr-x. 2 root root   4096 3月  26 2015 rh
[[email protected] opt]# gzip -d bak_wordpress_2017-12-28.sql.gz     #解壓之後會刪除原檔案。
[[email protected] opt]# ll
總用量 800
-rw-r--r--  1 root root 812373 12月 28 2017 bak_wordpress_2017-12-28.sql
drwxr-xr-x. 2 root root   4096 3月  26 2015 rh
[[email protected] opt]# mysql -uroot -p123456 <bak_wordpress_2017-12-28.sql
mysql> grant select,insert,update,delete on wordpress.* to [email protected]'192.168.153.%' identified by '123456';                                                #給wordpress這個使用者授權。
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> select user,host from mysql.user;
+-----------+---------------+
| user      | host          |
+-----------+---------------+
| root      | 127.0.0.1     |
| wordpress | 192.168.153.% |         #對應的使用者在lnmp伺服器上 /application/nginx/html/blog/wp-config.php裡面更改,然後解析在/etc/hosts解析。 

MySQL 資料庫服務
MySQL 資料庫服務