安裝的過程比較簡單。
但是這里有一個地方需要注意,如果你希望是能夠通過網絡訪問你安裝的數據庫的話。
在你設置好用戶名和密碼,以及訪問權限后,你可能發現你還是訪問不了。
這是因為你的安裝服務器只綁定了能夠本地訪問,你需要修改配置,讓你的服務器能夠支持遠程訪問。
具體的方法,請參考 RaspberryPi(樹莓派)安裝 MariaDB 數據庫沒有辦法遠程訪問 頁面中的文章。
更新系統
通過運行命令:
sudo apt-get update
來對你需要安裝的系統進行更新,根據網絡的情況可能需要的時間也不相同。
我們更新后系統的輸出內容為:
root@raspberrypi:~# sudo apt-get update Hit:1 http://archive.raspberrypi.org/debian buster InRelease Get:2 http://raspbian.raspberrypi.org/raspbian buster InRelease [15.0 kB] Get:3 http://raspbian.raspberrypi.org/raspbian buster/main armhf Packages [13.0 MB] Fetched 13.0 MB in 19s (694 kB/s) Reading package lists... Done root@raspberrypi:~#
安裝數據庫
通過下面的情況就可以自動執行安裝了:
sudo apt-get install mariadb-server
設置安全
當服務器安裝完成后,你需要運行:
sudo mysql_secure_installation
來為你的數據庫設置安全。
主要這個用途是設置你 root 的密碼,root 的遠程訪問權限,是否允許匿名訪問,是否允許遠程訪問等。
如果你只是測試在本地使用這個數據庫,你可以不用設置這個。
但是我們還是建議你設置。
單獨設置一個可以遠程訪問的用戶
你可以單獨設置一個用戶能具有足夠 root 的權限執行所有操作,可以進行遠程訪問。
你也可以使用 root 用戶進行配置,但是我們不建議你使用 root 用戶。
在你安裝的服務器上,使用 mysql 登錄到服務器上。
然后執行下面的命令:
CREATE USER 'honeymoose'@'%' IDENTIFIED BY '12345678'; GRANT USAGE ON *.* TO 'honeymoose'@'%'; GRANT ALL PRIVILEGES ON *.* TO 'honeymoose'@'%' IDENTIFIED BY '12345678' WITH GRANT OPTION; FLUSH PRIVILEGES;
請注意,上面的命令是在你使用 root 登錄到服務器上后進行數據庫的授權的。
執行上面 SQL 的意圖是,創建一個用戶,為用戶賦權。
修改配置允許遠程訪問
如果你現在進行遠程連接 MariaDB / MySQL 的時候,你會收到連接 10061 的錯誤。
按照我們前面的提示,這是因為綁定的問題。
舊版本的MySQL修改/etc/mysql/my.cnf文件,修改內容相同。
如果你的服務上的版本沒有這個文件的話,新版本的服務器,你需要修改:
/etc/mysql/mariadb.conf.d/50-server.cnf 這個文件。
注釋掉 ’bind-address
必要的話,可以嘗試重啟服務器。
重啟服務器的命令是:
root@raspberrypi:~# service mariadb restart
查看數據庫服務器進程是是否運行的命令是:
service mariadb status
如果服務器輸出下面的信息,表示服務器已經運行了,你可以嘗試使用 Client 遠程進行連接了。
root@raspberrypi:~# service mariadb status ● mariadb.service - MariaDB 10.3.22 database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2020-04-05 10:57:14 EDT; 11s ago Docs: man:mysqld(8) https://mariadb.com/kb/en/library/systemd/ Process: 1691 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS) Process: 1692 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS) Process: 1694 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= || VAR=`/usr/bin/galera_recovery`; [ $? -eq 0 ] && systemctl set-environment _WSREP_START_POSITION=$VAR || exit 1 (code=exited, status=0/SUCCESS Process: 1771 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS) Process: 1773 ExecStartPost=/etc/mysql/debian-start (code=exited, status=0/SUCCESS) Main PID: 1740 (mysqld) Status: "Taking your SQL requests now..." Tasks: 31 (limit: 4035) Memory: 47.7M CGroup: /system.slice/mariadb.service └─1740 /usr/sbin/mysqld Apr 05 10:57:13 raspberrypi systemd[1]: Starting MariaDB 10.3.22 database server... Apr 05 10:57:14 raspberrypi mysqld[1740]: 2020-04-05 10:57:14 0 [Note] /usr/sbin/mysqld (mysqld 10.3.22-MariaDB-0+deb10u1) starting as process 1740 ... Apr 05 10:57:14 raspberrypi systemd[1]: Started MariaDB 10.3.22 database server. Apr 05 10:57:14 raspberrypi /etc/mysql/debian-start[1775]: Upgrading MySQL tables if necessary. Apr 05 10:57:14 raspberrypi /etc/mysql/debian-start[1778]: /usr/bin/mysql_upgrade: the '--basedir' option is always ignored Apr 05 10:57:14 raspberrypi /etc/mysql/debian-start[1778]: Looking for 'mysql' as: /usr/bin/mysql Apr 05 10:57:14 raspberrypi /etc/mysql/debian-start[1778]: Looking for 'mysqlcheck' as: /usr/bin/mysqlcheck Apr 05 10:57:14 raspberrypi /etc/mysql/debian-start[1778]: This installation of MySQL is already upgraded to 10.3.22-MariaDB, use --force if you still need to run mysql_upgrade Apr 05 10:57:14 raspberrypi /etc/mysql/debian-start[1786]: Checking for insecure root accounts. Apr 05 10:57:14 raspberrypi /etc/mysql/debian-start[1790]: Triggering myisam-recover for all MyISAM tables and aria-recover for all Aria tables
另外,你可以查看 MariaDB 運行的端口:
MariaDB [(none)]> SHOW GLOBAL VARIABLES LIKE 'port'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | port | 3306 | +---------------+-------+ 1 row in set (0.004 sec) MariaDB [(none)]>