树莓派3+的设置(备忘录)第4部分,安装MySQL(mariaDB)

我之前在Raspberry Pi 3+上安装了一张16GB的microSD卡,并将其用作web服务器。但是由于空间变得不够用,所以我决定重新建立环境并使用一张64GB的microSD卡。以下是我在重新配置环境时的备忘录。相比之前的安装,有很多地方都有了很大的改变,这让我感到非常惊讶。

前提

    • このラズベリーパイは外部に公開はしません。(twitterへのポストはします)

 

    • 普段、このRaspberry Pi 3+は午前7時から午後11時まで30分毎にcronでbotを運用しています。

 

    そのため一日当たりの作業時間は夜間の23時から0時までの1時間ぐらいをメンテナンス時間として作業を行う予定です。

由於我已經很久遠離這樣的世界,所以可能有很多不夠好的地方。請您指出來。

安装MySQL(MariaDB)。

我这次本来想像以前一样安装phpmyadmin,但安装后用户部分出了问题,让我很困扰,所以我决定先将操作全部转为使用SQL命令执行。

我在撰写这篇文章时没有意识到,不是PMA的安装有问题,而是包含在仓库中的PMA源代码包含错误(版本4.6系)。通过手动升级版本可以解决这个错误。关于phpMyAdmin的安装,我计划以后另外撰写一篇文章。参考网站在这里。手动更新phpMyAdmin至最新版本[WSL/Ubuntu环境]:https://www.petitmonte.com/linux/phpmyadmin_update.html

以下是我参考的网站。

 

由于在尝试安装MySQL时遇到了一些“找不到”的问题,我决定安装MariaDB。

$ sudo apt install mariadb-server

安裝完MariaDB後,我們希望進行一些設定。接下來是這個。

$ sudo /usr/bin/mysql_secure_installation

$ sudo systemctl start mariadb.service

設置的要點如下:

    • rootのパスワード設定 → 設定する

 

    • 匿名ユーザーの有無 → いらない

 

    • リモートログインの有無 → 今回はコマンドラインで実行するので使うかもしれない いらない

 

    • testデータベースの有無 → いらない

 

    設定の反映 → やる

我会试一下到目前为止的情况,看能否登录。首先尝试不使用任何选项。

$sudo mysql

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 36
Server version: 10.3.29-MariaDB-0+deb10u1 Raspbian 10

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

我认为在没有任何东西的情况下,我将开始手动创建用户。

/*ユーザー追加*/
create user `任意のユーザー名`@`localhost` IDENTIFIED BY '任意のパスワード';
/*追加したユーザーに権限を付加。mysql8以降では書式が変わったそうです。*/
GRANT ALL PRIVILEGES ON *.* TO `任意のユーザー名`@'localhost' WITH GRANT OPTION;
/*反映*/
FLUSH PRIVILEGES;

我想验证一下追加的用户是否可以在这里看到。

MariaDB [(none)]> SELECT Host, User, Password FROM mysql.user;
+-----------+-------------+-------------------------------------------+
| Host      | User        | Password                                  |
+-----------+-------------+-------------------------------------------+
| localhost | root        | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|
| localhost | hoge-hoge   | *yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy|
+-----------+-------------+-------------------------------------------+

密码中包含有加密值。
接下来,我想要确认是否可以使用先前指定的用户进行登录。

$ sudo mysql --host=localhost --user=hoge-hoge --password=xxxxxxxxxxxxxxxxxxxxxx

我也可以来这边。

$ sudo mysql -uhoge-hoge -p
Enter password:

如果能够达到这个程度,我觉得后面的事情都可以在命令行中解决。我原本是这样想的,但是…

在PDO中无法连接到MySQL(已解决)

首先需要安装PDO驱动器。

$ sudo apt-get -y install php-mysql

进一步取消掉所有php.ini中关于mysql和pdo的行的注释。确认在phpinfo中也有“PDO drivers mysql”的说明。

参照此源代码,尝试使用root进行连接测试。

<?php
// defineの値は環境によって変えてください。
define('HOSTNAME', 'localhost');
define('DATABASE', 'hoge_data');
define('USERNAME', 'root');
define('PASSWORD', 'root-hoge');

try {
/// DB接続を試みる
$db = new PDO('mysql:host=' . HOSTNAME . ';dbname=' . DATABASE, USERNAME, PASSWORD);
$msg = "MySQL への接続確認が取れました。";
} catch (PDOException $e) {
$isConnect = false;
$msg = "MySQL への接続に失敗しました。<br>(" . $e->getMessage() . ")";
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>MySQL接続確認</title>
</head>
<body>
<h1>MySQL接続確認</h1>
<p><?php echo $msg; ?></p>
</body>
</html>

MySQL连接确认
无法连接到MySQL。
(SQLSTATE[HY000] [1698] 对用户’root’@’localhost’拒绝访问)

在MySQL5.7中,如果没有sudo权限,无法连接到root用户。我将尝试使用之前创建的另一个账户重新连接。

……我们连上了!

相关页面

 

广告
将在 10 秒后关闭
bannerAds