在Linux中安裝MariaDB並添加遠程訪問
最近學習到了數據庫部分,因為有一台台式機一台筆記本換着用,就沒有把數據庫安裝在本機,本來打算用之前買的虛擬空間的數據庫的,結果速度太慢用起來太難受了,就把閑置的香橙派(類似樹莓派的卡片電腦,強烈不建議非剛需買這玩意兒,基本閑置吃灰)拿出來安個MariaDB遠程訪問,下面是安裝的步驟
注1:我的是Debian系系統,如果你是RedHat系,把apt換成dnf或者yum就好
注2:所有命令均需要root權限
安裝MariaDB
1、安裝MariaDB
apt install mariadb-server
2、啟動MariaDB
systemctl start mariadb
3、設置MariaDB開機自啟
systemctl enable mariadb
4、執行初始化命令
mysql_secure_installation
初始化過程中會提示進行如下配置
# 輸入原來的root密碼,這里沒有密碼,直接回車就可以了
Enter current password for root (enter for none):
# 更改root密碼?
Change the root password?
# 刪除匿名用戶?
Remove anonymous users?
# 禁用root遠程登錄? 注:我選了否,最后還是要自己配置
Disallow root login remotely?
# 是否刪除test測試數據庫?
Remove test database and access to it?
# 重新加載權限數據表
Reload privilege tables now?
配置完成后可以考慮重新啟動一下MariaDB
systemctl restart mariadb
配置遠程登錄
MariaDB安裝好后是默認不能通過遠程連接的,需要做以下修改
1、修改地址綁定
編輯/etc/mysql/mariadb.conf.d/50-server.cnf
文件
將其中的
bind-address = 127.0.0.1
更改為需要放行的地址,如更改為0.0.0.0則接受所有IP地址的連接請求
bind-address = 0.0.0.0
2、添加支持遠程登錄的用戶
我們可以先查詢以下
use mysql;
select host,user from user;
在我安裝之后,只能看到一個本地root用戶
host | user |
---|---|
localhost | root |
所以要添加一個遠程登錄的用戶,因為是自己用,我就直接添加了一個授予所有權限的用戶,如果是生產環境,慎重!!!
-- 創建用戶
CREATE USER '用戶名'@'主機名' IDENTIFIED BY '密碼';
--示例1,允許所有從任意地址登錄的用戶: create user 'ActionNet'@'%' identified by 'zxc123';
--示例2,允許從192.168.199.100登錄的用戶: create user 'ActionNet'@'192.168.199.100' identified by 'zxc123';
-- 授予權限
grant 權限列表 on 數據庫名.表名 to '用戶名'@'主機名';
-- 示例:授予任意地址登錄ActionNet用戶所有數據庫所有權限
GRANT ALL ON *.* TO 'ActionNet'@'%';
最近遇到了添加了遠程賬戶還是無法登錄的情況,具體為Access denied for user 'root'@'localhost'
這時候可以看看對應用戶的plugin是不是mysql_native_password
,因為這個才代表密碼登錄
select user,host,plugin from user;
User | Host | plugin |
---|---|---|
root | localhost | mysql_native_password |
如果plugin不是這個,可以自己修改一下,正常修改表數據的SQL,就不寫了
配置防火牆
之前因為我沒有開防火牆,所以沒想過會有這方面的問題,現在加上
# firewall
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --add-port=3306/tcp
# iptables
iptables -A INPUT -p tcp --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
添加完防火牆記得重啟一下