資料庫之資料庫的部署與管理
資料庫是用來存放數據表格的
1.資料庫的安全初始化
<1>yum install mariadb-server -y #下載資料庫軟體
<2>systemctl start mariadb
<3>systemctl stop firewalld
<4>mysql #可以進行免密登陸,此時所有的客戶端都可以登陸
<5>netstsat -antlpe | grep mysql #查看mysql的狀態,對外開放
<6>vim /etc/my.cnf
skip-networking=1 #開啟跳過網路介面功能即關閉mysql的網路介面
<7>systemctl restart mariadb #修改完配置文件之後必須重啟服務才生效
<8>netstsat -antlpe | grep mysql #再次查看埠,已經關閉,此時只有本地用戶可以登陸
<9>mysql #本地用戶免密登陸,這樣不安全
<10>mysql_secure_installation #設置資料庫安全初始化腳本,使超級用戶用密碼登陸,以及限制其他用戶登陸
<11>mysql -uroot -p #超級用戶用密碼登陸
2.查看資料庫
mysql -uroot -p #登陸上去後執行以下命令
<1>SHOW DATABASES; #顯示所有資料庫(相當於ls)
<2>USE mysql; #切換到mysql資料庫中(相當於cd)
<3>SHOW tables; #顯示資料庫中所有的表格(相當於ls)
<4>SELECT User,Host,Password,Select_priv FROM user Where User="root"; #從root用戶的User中查詢
<5>SELECT User,Host,Password,Select_priv FROM user Where User="root" AND host="localhost"; #查詢user表的數據結構
<6> DESC user; #查看user表中的欄位
3.資料庫的新建
<1>CREATE DATABASE westos #創建資料庫westos
<2>SHOW DATABASES; #查看westos是否成功創建
<3>USE westos;
<4>SHOW TABLES; #查看westos中的表格
Empty set (0.00 sec) #表格為空
<5>CREATE TABLE linux(
-> username varchar(6) not null,
-> password varchar(10) not null);#新建資料庫westos中的表格linux
Query OK, 0 rows affected (0.43 sec)
<5>SHOW TABLES; #查看新建的表格
<5>DESC linux;
<6>INSERT INTO linux values ("wang","111"); #在linux表格中插入信息
<7> INSERT INTO linux values ("ting","222");
<8>SELECT * FROM linux; #查看linux表格中的所有信息
4.資料庫表的數據的更改:
<1>ALTER TABLE linux RENAME messages; #把表格的名字linux改為messages
<2>SHOW TABLES;
<3>ALTER TABLE messages ADD age varchar(10); #在表格中添加age
Query OK, 2 rows affected (0.41 sec)
Records: 2 Duplicates: 0 Warnings: 0
<4>DESC messages;
<5> ALTER TABLE messages DROP age; #刪除age
<6>DESC messages;
<7> ALTER TABLE messages ADD age varchar(10) AFTER username; #有順序的添加age
Query OK, 2 rows affected (0.42 sec)
Records: 2 Duplicates: 0 Warnings: 0
<8> DESC messages;
<9> UPDATE messages SET password="123" WHERE username="wang"; #更改用戶wang的密碼為123
Query OK, 1 row affected (0.04 sec)
Rows matched: 1 Changed: 1 Warnings: 0
<10>SELECT * FROM messages;
<11> DELETE from messages WHERE username="wang";#刪除表格中的wang用戶
<12> DROP TABLE messages; #刪除表格
<13> DROP DATABASE westos; #刪除資料庫
5.用網頁管理資料庫(比上述方法更方便)
<1>yum install httpd php -y #安裝網頁管理資料庫需要的服務
<2>systemctl start httpd #開啟服務
<3>systemctl stop firewalld #關閉防火牆
<4>cd /var/www/html/
<5>ls #有此安裝包,就直接進行解壓,沒有此安裝包,就先獲取安裝包
<6>tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2 #解壓bz2的安裝包
<7>ls #查看是否成功解壓
<8>mv phpMyAdmin-3.4.0-all-languages/ mysqladmin #改名字
<9>打開瀏覽器輸入: 172.25.254.138/mysqladmin/ #此時會報錯,因為沒有mysql功能
<10>yum install php-mysql.x86_64 -y #在php中添加mysql功能
<11>systemctl restart httpd
<12>再次打開瀏覽器輸入: 172.25.254.138/mysqladmin/ #可以訪問
6.用戶授權
mysql -uroot -p #登陸
先創建用戶:
<1>CREATE user lala@localhost identified by "111"; #創建密碼為111的本地用戶lala,只在本地可以登陸,localhost表示本地
<2>CREATE user helen@"%" identified by "222";#創建密碼為222的遠程用戶,都可以登陸,"%"表示遠程
<3>SELECT user from mysql.user; #查看建立的用戶
開始授權:
<1>GRANT UPDATE,SELECT,INSERT on westos.* to lala@localhost;
#給本地用戶授權,該用戶可以對westos資料庫進行編輯,插入,更新
<2>GRANT SELECT on westos.* to helen@"%"; #給遠程用戶授權
<3>SHOW GRANTS for lala@localhost; #查看許可權
<4>SHOW GRANTS for helen@"%";
<5>REVOKE INSERT on westos.* FROM lala@localhost; #撤銷用戶許可權
<6>FLUSH privileges #重載授權表
打開瀏覽器開始測試:
<7>授權之前,查看不到westos
<8>授權之後,可以查看到westos
<9>更改信息
7.用戶密碼更改
mysqladmin -uroot -pwestos password "redhat" #直接修改密碼
若普通用戶密碼忘記,可以通過root用戶更改密碼,若root用戶密碼忘記,執行以下操作
<1>systemctl stop mariadb
<2>mysqld_safe --skip-grant-tables &
<3>
<4>mysql #進入資料庫修改
<5>UPDATE mysql.user set Password="westos" where User="root"; #此方法時用明文修改密碼
<6> SELECT * FROM mysql.user; #查看密碼
<7>UPDATE mysql.user set Password=password("westos") where User="root"; ##此方法修改密碼是加密的
<8> SELECT * FROM mysql.user;
<9>quit #退出資料庫
<10>ps aux | grep mysql #查看mysql相關進程,全部關閉
<11>killall -9 mysqld_safe #關閉mysqld_safe進程
<12>kill -9 3785 #關閉myaql進程
<13>systemctl restart mariadb.service #重啟服務
<14>mysql -uroot -p #用修改後的密碼重新登陸
8.資料庫資料備份和恢復
quit #退出資料庫
<1>mysqldump -uroot -pwestos --all-database > /mnt/westos.all ##備份所有資料庫數據
mysqldump -uroot -pwestos --all-database --no-data > /mnt/westos.err #只備份數據結構,不備份數據
mysqldump -uroot -pwestos westos > /mnt/westos.sql #指定westos資料庫的資料備份
<2>ls /mnt/
<3> mysql -uroot -pwestos -e "drop database westos;" #模擬資料庫丟失
<4> mysql -uroot -pwestos -e "show databases;" #查看是否成功丟失
<5>mysql -uroot -pwestos westos < /mnt/westos.sql #恢復丟失的資料庫,但此時會報錯
如何解決此問題
方法一:
<5>vim /mnt/westos.sql #編輯備份文件
<6>mysql -uroot -pwestos < /mnt/westos.sql #此時就可以成功恢復了
方法二:
用第二種方法時候將第一種方法文件中填寫的內容刪除
mysql -uroot -pwestos -e "drop database westos;" #模擬丟失
<7>mysql -uroot -pwestos -e "CREATE DATABASE westos;" #創建
<8>mysql -uroot -pwestos westos < /mnt/westos.sql #恢復
<9>mysql -uroot -pwestos -e "show databases;" #查看是否恢復
※druid 的基礎架構與應用
※TypeScript基礎之高級類型的可辨識聯合(Discriminated Unions)
TAG:程序員小新人學習 |