# MysQL数据库理
> 注:也可以过phpMyAdmin
## 数据库认root密码
```
cd/root/ openstack #必须进入 oneinstack目录下执行
grep dbrootpwd options conf#显示数据库root密码
```
## 更改数据库 root 密码
```
cd /root/oneinstack #必须进入 oneinstack 目录下执行
./reset_db_root_password.sh
```
如下图
![](https://box.kancloud.cn/440b0d9b012ec50db3a06d608d2caf72_554x386.png)
## 创建一个数据库
如:创建一个 oneinstack 的数据库(举例)
```
# mysql -uroot –p #进入数据库控制台
Enter password: #输入数据库的 root 密码,默认不显示密码
MySQL [(none)]> create database oneinstack; #特别注意有分号
MySQL [(none)]> show databases; #查看数据库,除 oneinstack 数据库,其它 3 个为系统默认库,不能删除
MySQL [(none)]> exit; #退出数据库控制台,特别注意有分号
```
如下图:
![](https://box.kancloud.cn/40b4d1628580b120e5de882f0089ae77_555x451.png)
## 删除一个数据库
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; #退出数据库控制台,特别注意有分号
```
如下图:
![](https://box.kancloud.cn/80dc146ded0dac7f47c5a9f74f04860e_555x251.png)
## 配置 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
```
规则如下图:
![](https://box.kancloud.cn/6662d287fcc34542d544890931cf8526_554x192.png)
### 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; #退出数据库控制台,特别注意有分号
```
![](https://box.kancloud.cn/7febb9e9b641a13d9e9929086c011fba_555x283.png)