# MysQL數據庫理
> 注:也可以過phpMyAdmin
## 數據庫認root密碼
```
cd/root/ openstack #必須進入 oneinstack目錄下執行
grep dbrootpwd options conf#顯示數據庫root密碼
```
## 更改數據庫 root 密碼
```
cd /root/oneinstack #必須進入 oneinstack 目錄下執行
./reset_db_root_password.sh
```
如下圖

## 創建一個數據庫
如:創建一個 oneinstack 的數據庫(舉例)
```
# mysql -uroot –p #進入數據庫控制臺
Enter password: #輸入數據庫的 root 密碼,默認不顯示密碼
MySQL [(none)]> create database oneinstack; #特別注意有分號
MySQL [(none)]> show databases; #查看數據庫,除 oneinstack 數據庫,其它 3 個為系統默認庫,不能刪除
MySQL [(none)]> exit; #退出數據庫控制臺,特別注意有分號
```
如下圖:

## 刪除一個數據庫
MySQL [(none)]> drop database oneinstack; #刪除 oneinstack 數據庫
MySQL [(none)]> exit; #退出數據庫控制臺,特別注意有分號
## 創建數據庫用戶
為了安全我們通常給每一個網站程序建立唯一的數據庫連接帳號(帳號名不能為root)。
如:添加一個用戶名為 db_user,密碼為 123456,授權為本機 localhost 對 oneinstack 數據庫所有權限,命令如下
```
# mysql -uroot –p
MySQL [(none)]> grant all privileges on oneinstack.* to db_user@'localhost' identified by '123456'; #授權語句,特別注意有分號
MySQL [(none)]> flush privileges; #權限立即生效
MySQL [(none)]> exit; #退出數據庫控制臺,特別注意有分號
```
如下圖:

## 配置 MySQL 遠程連接?
為了安全考慮,OneinStack 僅允許云主機本機(localhost)連接數據庫,如果需要遠程連接數據庫,需要如下操作:
### 1.打開 iptables 3306 端口
```
# iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
# service iptables save #保存 iptables
#iptables -nvL #查看自己添加iptables
```
規則如下圖:

### 2.數據庫授權
遠程連接新建一個帳號(帳號名不能為 root)。
如:添加一個用戶名為 linuxeye,密碼為 123456,授權為% (%表示所有 ip 能連接,可以設置指定 ip)對 oneinstack 數據庫所有權限,命令如下
```
# mysql –uroot –p
MySQL [(none)]> grant all privileges on oneinstack.* to linuxeye@'%' identified by '123456'; #授權語句,特別注意有分號
MySQL [(none)]> flush privileges;
MySQL [(none)]> exit; #退出數據庫控制臺,特別注意有分號
```
