20191119 很久沒有在服務器上安裝 mysql 了,很多細節都已經忘記了!找出以前的紀錄,亦步亦趨的操作,還是會出現不一樣的情況!
所以,再次記錄一下本次過程!
1、打開自己以前的記錄
官網手冊
https://help.ubuntu.com/lts/serverguide/serverguide.pdf
從前的紀錄
https://blog.csdn.net/u010953609/article/details/88085218
2、第一步就遇到問題了
-
$ sudo apt install mysql-server
直接蹦出來一個錯誤
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it? -
打開以上 2 個文件看看
$ cd /var/lib/dpkg/
/var/lib/dpkg$ ll
-rw-r----- 1 root root 0 Nov 22 11:47 lock
-rw-r----- 1 root root 0 Dec 14 2018 lock-frontend$ sudo cat lock
$ sudo cat lock-frontend都是空的!
說是有另一個 apt 在操作?我也沒有搞懂爲什麼!
準備重複一次之後再重啓開看
因爲這服務器很久沒有用,所以,應該先 update 看看$ sudo apt update
$ sudo apt install mysql-server
他自己就好了!
難怪一般安裝什麼首先都 apt update! -
以前就知道 Ubuntu 1804 安裝 mysql 之後沒有初始密碼的,所以這次特別留意(可惜當時專注操作設置密碼,沒有截圖保留!)
記得中途要求設置管理員賬號和密碼,賬號還是選擇了 root ,設置密碼的時候有一個選擇密碼強度,我選擇了 strong (最強), 自然 123456 這種密碼是不能過關了!所以設置了一個 wwzzhhXXXXXXXX 一大串,當時也沒有注意就過去了!
這個密碼問題爲後面 phpmyadmin 買了一個大坑!
2、 確認安裝結果
-
sudo netstat -tap | grep mysql
tcp 0 0 localhost.localdo:mysql 0.0.0.0:* LISTEN 7132/mysqld
-
ps -ef |grep mysql
mysql 7132 1 0 15:48 ? 00:00:00 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid dhbm 7252 26865 0 15:51 pts/2 00:00:00 grep --color=auto mysql
-
dpkg -l |grep mysql
ii mysql-client-5.7 5.7.28-0ubuntu0.18.04.4 amd64 MySQL database client binaries ii mysql-client-core-5.7 5.7.28-0ubuntu0.18.04.4 amd64 MySQL database core client binaries ii mysql-common 5.8+1.0.4 all MySQL database common files, e.g. /etc/mysql/my.cnf ii mysql-server 5.7.28-0ubuntu0.18.04.4 all MySQL database server (metapackage depending on the latest version) ii mysql-server-5.7 5.7.28-0ubuntu0.18.04.4 amd64 MySQL database server binaries and system database setup ii mysql-server-core-5.7 5.7.28-0ubuntu0.18.04.4 amd64 MySQL database server binaries ii php7.2-mysql 7.2.24-0ubuntu0.18.04.1 amd64 MySQL module for PHP
-
which mysql
/usr/bin/mysql
3、本地命令行確認
$ mysql -uroot
開始直接就可以的,沒有加 -p ,也沒有提示我需要輸入密碼的
後面在折騰 phpmyadmin 的時候,重設了 root 登錄的 plugin 方式
現在需要加上 -p
$ mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1023
Server version: 5.7.28-0ubuntu0.18.04.4 (Ubuntu)
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
3、安裝 phpmyadmin
- 按照手冊操作
sudo apt install phpmyadmin
操作過程中會提示選擇按照 Apache 、httpd 等方式自動識別,因爲我要使用 nginx ,所以一個都沒有選
實際內容是西崽到了 /etc/phpmyadmin
這個版本是 4.6 的
-
自行下載安裝 phpmyadmin 4.9
官網下載地址
https://www.phpmyadmin.net/files/
現在最新版是 5.0.0-alpha1sudo wget https://files.phpmyadmin.net/phpMyAdmin/4.9.1/phpMyAdmin-4.9.1-all-languages.zip
修改配置
sudo cp config.sample.inc.php config.inc.php
sudo vim config.inc.php
$cfg['blowfish_secret'] = 'wzh20191119'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
-
配置 nginx 網站
這是第一次安裝的 4.6版的
sudo ln -s /usr/share/phpmyadmin /var/www/phpmyadmin第二次自己下載的就直接放在 /var/www 目錄下了,無需再軟連接
設置 phpmyadmin 網站
root /var/www/phpmyadmin49; -
測試
curl 127.0.0.1:999502 Bad Gateway 502 Bad Gateway
nginx/1.14.0 (Ubuntu) 瀏覽器測試同樣出現 502 Bad Gateway
-
百度之後得知,root 賬戶的登錄 plugin 方式 auth_socket ,php 連接不上!
mysql> select user, plugin from mysql.user;
+------------------+-----------------------+
| user | plugin |
+------------------+-----------------------+
| root | auth_socket |
| mysql.session | mysql_native_password |
| mysql.sys | mysql_native_password |
| debian-sys-maint | mysql_native_password |
| pmauser | mysql_native_password |
+------------------+-----------------------+
5 rows in set (0.00 sec)
mysql> update mysql.user set plugin=‘mysql_native_password’ where user=‘root’;
再次打開網站,可以了!
mysqli_real_connect(): (HY000/1045): Access denied for user ‘root’@‘localhost’ (using password: YES)
- root 密碼死活不對!
當時安裝過程中特意 cp 並記錄了,不能錯的!
安裝過程中,2 次輸入密碼都確認的!
由於安裝 mysql 是選擇了密碼強度 strong ,所以,想到可能當時沒有大寫字母,所以衝色號再一次帶有大寫字母的密碼
update mysql.user set authentication_string=PASSWORD(‘M…帶有大寫字母的密碼’) where user=‘root’;
使用新密碼就 ok 了!
到底是安裝過程中兩次密碼的時候他不認真確認,還是我當時沒有仔細看提示呢?