RaspberryPi(樹莓派)如何安裝 MariaDB / MySQL 數據庫

安裝的過程比較簡單。mysql

可是這裏有一個地方須要注意,若是你但願是可以經過網絡訪問你安裝的數據庫的話。sql

在你設置好用戶名和密碼,以及訪問權限後,你可能發現你仍是訪問不了。數據庫

這是由於你的安裝服務器只綁定了可以本地訪問,你須要修改配置,讓你的服務器可以支持遠程訪問。安全

具體的方法,請參考 RaspberryPi(樹莓派)安裝 MariaDB 數據庫沒有辦法遠程訪問 頁面中的文章。服務器

更新系統

經過運行命令:網絡

sudo apt-get update測試

來對你須要安裝的系統進行更新,根據網絡的狀況可能須要的時間也不相同。spa

咱們更新後系統的輸出內容爲:rest

root@raspberrypi:~# sudo apt-get update
Hit:1 http://archive.raspberrypi.or... buster InRelease
Get:2 http://raspbian.raspberrypi.o... buster InRelease [15.0 kB]
Get:3 http://raspbian.raspberrypi.o... buster/main armhf Packages [13.0 MB]
Fetched 13.0 MB in 19s (694 kB/s)
Reading package lists... Done
root@raspberrypi:~#code

安裝數據庫

經過下面的狀況就能夠自動執行安裝了:

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)]>

https://www.cwiki.us/questions/57938848

相關文章
相關標籤/搜索