linux 資料庫管理
資料庫
一、什麼是資料庫
顧名思義資料庫用來存放資料表格
二、資料庫安裝及安全初始化
(一)資料庫安裝
1.yum install mariadb-server -y ##下載服務端
2.systemctl start mariadb #開啟資料庫服務
3.登入
mysql [enter] #無密碼登入資料庫
MariaDB [(none)]> show databases; ##查詢資料庫,注意命令結尾一定加分號
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)
(二)安全初始化
如上可以無密碼登入資料庫,對於資料庫而言是極不安全的。為了保證資料庫的安全性,需要對資料庫進行安全初始化。
(1)配置埠
1.使用如下命令可以檢視資料庫對網路開放的埠號
netstat -antlpe | grep mysql
[root@localhost ~]# netstat -antlpe | grepmysql
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 27 215411 32204/mysqld
##可以看出資料庫對網路開放埠3306
2.vim /etc/my.cnf #埠配置
在11行之前編輯:
skip-networking=1 ##開啟跳過網路訪問的功能,即關閉網路埠
:wq
systemctl restart maridb ##重啟服務
(2)安全初始化
1.初始化
[root@localhost ~]#mysql_secure_installation ##開始進行安全初始化
...
Enter current password for root (enter fornone): [enter] #輸入當前密碼,為初始化時資料庫無祕密
...
Change the root password? [Y/n] y #是否修改密碼,需要加密
New password: ##輸入密碼且不顯行
Re-enter new password: ##確認密碼
Password updated successfully!
Reloading privilege tables..
...Success!
Remove anonymous users? [Y/n] y #禁止匿名登入
...Success!
Disallow root login remotely? [Y/n] y ##禁止root使用者遠端登入
...Success!
Remove test database and access to it?[Y/n] y ##不測試
-Dropping test database...
Reload privilege tables now? [Y/n] y ##更新資料庫,即完成初始化
...Success!
2.登入格式
mysql -uroot -p密碼 #使用者root使用密碼登入資料庫,但方式會顯示祕密,仍存在安全性問題
[root@localhost mnt]# mysql -uroot -p
Enter password: ##不顯行輸入密碼
Welcome to the MariaDB monitor. ...
(三)管理資料庫
(1)查詢資料庫
進入資料庫中:
1. show databases; ##檢視資料庫
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql | ##包含資料庫mysql
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)
2. use mysql; ##進入資料庫
3. show tables; ##檢視當前資料庫中的表格
desc 表名; ##檢視錶中的欄位
MariaDB [mysql]> desc func; ##檢視func表格中包含哪些欄位
+-------+------------------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default| Extra |
+-------+------------------------------+------+-----+---------+-------+
| name | char(64) |NO | PRI | | |
| ret | tinyint(1) |NO | | 0 | |
| dl | char(128) |NO | | | |
| type | enum('function','aggregate') | NO | | NULL | |
+-------+------------------------------+------+-----+---------+-------+
###則包含欄位:name 、 ret、 dl 、 type
4. select * from 表名; ##查詢表中所有欄位內容
select 欄位 from 表名; ##檢視錶中指定欄位的內容
##可以看出表中包含的欄位比較多,包含欄位如:Host、User、Passqord等
##檢視錶中User包含哪些資料即哪些使用者
(2)新建資料庫
create database 資料庫名稱; #新建資料庫
use database 資料庫名; ##進入資料庫
create table 表名(
->欄位名1 varchar(字元長度) not null, ##定義欄位名不能大於設定的字串長度(最大為255),且不能為空
->欄位名2 varchar(字元長度) not null,
->...
-> ); ##新建表格
insert into 表名 values('字串1','字串2',...); #寫資料內容
insert into 表名 values('字串1',password('字串2'),...);
##字串2的內容將不可見
(3)更新資料庫資訊
1. update 表名 set password=password('字串') where username='user';
##將username='user'的密碼均改為字串1,並且加密不顯示字串內容
update 表名 set password=password('字串') where ( username='user1' or username=’user2’);
###更新user1和user2的密碼
delete from 表名 where username='user1';
##從linux 表格中刪除username='user1'的資訊
2. alter table 表名 add 欄位名 varchar(字元長度) not null;
##在linux表格後加入某欄位
alter table 表名 add 欄位名 varchar(字元長度) after 已有欄位;
##在linux表格的已有欄位後新增欄位
alter table 表名 drop 段名; ##從某表格中刪除某欄位
(4)刪除資料庫
1.delete from 表名 where 欄位='字串'; ##刪除某表格中包含某欄位資訊的內容
drop table 表名; ##刪除指定表格
drop database 庫名; ##刪除指定庫
(5)資料庫備份
1.mysqldump -uroot -p密碼 --all-database ##備份所有表中的所有資料
2.mysqldump -uroot -p密碼 --all-database --no-data ##備份所有表,但不備份資料
3.mysqldump -uroot -p密碼 庫名 ##備份指定的庫
以上備份內容併為儲存在檔案中,可以將備份內容匯入檔案中進行儲存,命令如下:
4.mysqldump -uroot -p密碼 庫名 > /目錄名/檔名.sql
如:mysqldump -uroot -pwestos westos >/mnt/westos.sql
5.mysqldump -uroot -p密碼 庫名 表名 > /目錄名/檔名.sql
##備份指定庫中的指定表格至檔案中
如:mysqldump -uroot -pwestos westos linux >/mnt/linux.sql
##備份westos庫中的linux表至/mnt/linux.sql中
6.mysql -uroot -p密碼 -e "create database 庫名"
##新建庫,其中:-e表示執行命令
7.mysql -uroot -p密碼 庫名 < /目錄名/檔名.sql
##將檔案中的資料匯入庫中
如:mysql -uroot -pwestos westos </mnt/westos.sql
(6)使用者授權
先登入資料庫:mysql -uroot -pwestos
1.create user 使用者名稱@localhost identified by '密碼';
##建立使用者並給定密碼,此使用者只能通過本機登入
select User,Host from mysql.user; ##檢視使用者資訊=使用者名稱+登入方式
登入格式:mysql -u使用者名稱 -p密碼 ##本機登入
create user 使用者名稱@'%' identified by '密碼';
##建立使用者並給定密碼,此使用者可以通過網路登入
登入格式:mysql -u使用者名稱 -p密碼 -h IP ##通過網路登入
2.超級使用者登入資料庫再進行授權:mysql -uroot -p密碼
授權命令如下:
grant insert,update,delete,select on 庫名.* to 使用者@localhost;
##使用者授權:使指定使用者對指定庫中所有資料都有某些執行許可權
grant 許可權1,... on 庫名.表名 to 使用者@'%'
##使用者對庫中的指定的表格有某些許可權
如:grant insert,update,delete,select on westos.linux to bai@localhost
##使用者bai可以對westos.linux表進插值、更新、刪除、檢視資料的功能
3.show grants for 使用者@'%' ##檢視使用者授權
show grants for 使用者@localhost
4.revoke 許可權 on 庫名.表名 from 使用者@localhost; ##去除使用者許可權
revoke 許可權 on 庫名.表名 from 使用者@'%';
如:revokeselect,update,delete on westos.linux from bai@localhost;
##去除使用者bai 對於westos.linux表的select、update、delete許可權
drop user 使用者@'%'; ##刪除使用者
drop user 使用者@localhost;
(7)更改root使用者密碼
1.直接呼叫如下命令進行改改密:
mysqladmin -uroot -p原密碼 password 新密碼 ##更改使用者密碼為新密碼
2.當忘記使用者密碼時,則依次執行如下操作
systemctl stop mariadb ##先關閉服務
mysqld_safe --skip-grant-tables & #開啟myasql登入並跳過授權表
mysql #即可直接登入
update mysql.user set Password=password('新密碼'); ##更改密碼
update mysql.user set Password=password('新密碼') where User=root;
ps aux | grep mysql #過濾mysql的所有程式並且關閉這些程式
kill -9 程式id
systemctl start mariadb ##開啟服務
mysql -uroot -p新密碼 ##使用新設定的密碼
資料庫的網頁管理工具
基於以上實驗基礎
一、安裝
1.yum install httpd php php-mysql -y
2.systemctl start httpd
systemctl enable httpd
systemctl stop firewalld
systemctl disable firewalld
2.需要下載
phphMyAdmin-3.4.0-all-languages.tar.bz2
tar jxf phphMyAdmin-3.4.0-all-languages.tar.bz2 -C /var/www/html ##解壓
cd /var/www/html
mv phphMyAdmin-3.4.0-all-languages/ 名稱 ##將該證照重新命名
3. cd /var/www/html/mysql
cp -p config.sample.inc.pfp config.inc.php ##得到配置檔案
vim config.inc.php
編輯第17行,如下示,如圖示:' '中所加內容可任意填寫
$cfg['blowfish_secret'] = 'NEWADD'; /* YOUMUST FILL IN THIS FOR COOKIE AUTH! */
4.開啟瀏覽器測試:
訪問http://172.25.254.109/mysql
(1)新建資料庫:westos,如下示:
(2)在新資料庫westos中新建表westosuser,欄位數為4
可以在服務端檢視
填寫表格:
執行成功後顯示如下:
可在服務端檢視
相關文章
- 資料庫PostrageSQL-管理資料庫資料庫SQL
- 資料庫管理資料庫
- MySQL資料庫資料管理MySql資料庫
- 資料庫管理(ZT)資料庫
- Oracle資料庫管理Oracle資料庫
- 資料庫的管理資料庫
- 資料庫⽇志管理資料庫
- IT專案管理 與 資料庫管理專案管理資料庫
- 資料庫歷史資料有效管理資料庫
- 資料庫雲容量管理資料庫
- 資料庫管理:DBeaverEE for Mac資料庫Mac
- MySQL資料庫管理4MySql資料庫
- DBA(資料庫管理員)資料庫
- 資料庫應用管理資料庫
- postgresql 資料庫基本管理SQL資料庫
- 資料庫管理丨10種不同的雲開發資料庫管理技巧資料庫
- Oracle 資料庫 10g:自我管理資料庫Oracle資料庫
- 4 管理資料庫例項和叢集資料庫資料庫
- 【PG管理】postgresql資料庫管理相關SQL資料庫
- 使用OEM管理RAC資料庫——RAC管理資料庫
- 雲資料庫管理與資料遷移資料庫
- Linux基礎命令---mysqladmin資料庫管理工具LinuxMySql資料庫
- SpringBoot資料庫管理 - 用Liquibase對資料庫管理和遷移?Spring Boot資料庫UI
- 1.1.1. 資料庫管理員資料庫
- 管理SQL Server資料庫安全SQLServer資料庫
- Navicat Premium 15 資料庫管理REM資料庫
- 資料庫的資訊保安管理資料庫
- 關於資料庫碎片管理資料庫
- phpAdmin資料庫管理套件PHP資料庫套件
- 建立銷售管理資料庫資料庫
- MySQL資料庫管理員(OCP)MySql資料庫
- Flyway, 資料庫Schema管理利器資料庫
- 邏輯資料庫的管理資料庫
- 資料庫應用管理(zt)資料庫
- 使用srvctl管理RAC資料庫資料庫
- 學生成績管理資料庫資料庫
- DBA資料庫管理員要求資料庫
- aix下oracle資料庫管理AIOracle資料庫