mysql yum安裝失敗_手拉手搭建 lnmp 環境及安裝 wordpress
技術標籤:mysql yum安裝失敗
首先了解一下環境
平臺:Centos7.6
Nginx: 1.12.2
Mysql: 8 (或者 Mariadb: 10.3.16-MariaDB)
PHP: 7.2.19
Wordpress: 5.2.2
另外,由於 mysql8 的官方 yum 源安裝速度非常慢(親測20 多分鐘至幾個小時),而且一些配置也會稍微複雜一點,所以推薦安裝 mariadbb10 的版本替代。
安裝開發工具包
- 可先通過 `yum grouplist`檢視一下安裝列表,這裡我們只安裝其中一個開發工具包`Developmennt Tools`
yum groupinstall 'Development Tools' -y
nginx安裝與配置
- 安裝
yum isntall -y ngin
- 一般nginx的預設配置目錄是`/etc/nginx/conf.d/`,這裡我們新建一個配置檔案
vim /etc/nginx/conf.d/web.conf
- 並在web.conf 檔案中寫入以下內容,注意 `server_name 小香提 - 又一個WordPress站點;` 為你的域名。
#======================== WEB options ============================ server { listen 80; server_name 小香提 - 又一個WordPress站點; root /var/wordpress; index index.php index.html; charset utf-8; #======================== Pseudo static ========================== location / { if (-f $request_filename/index.html){ rewrite (.*) $1/index.html break; } if (-f $request_filename/index.php){ rewrite (.*) $1/index.php; } if (!-f $request_filename){ rewrite (.*) /index.php; } } #======================== PHP options ============================ location ~ .php { root /var/wordpress; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } #======================== Error page ============================= error_page 400 403 404 /40x.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
最後啟動nginx服務,並設為開機啟動
systemctl start nginx
systemctl enable nginx
清除舊的 mysql/mariadb 版本
centos7下預設安裝有mariadb資料庫,但是是舊版本,在安裝新版本前需要先把舊版本刪除,有些系統還預設安裝mysql,也必須刪除,否則有可能會產生衝突。
- 檢查是否安裝了mysql及相關依賴
[[email protected] ~]# rpm -qa |grep mysql mysql80-community-release-el7-3.noarch mysql-community-common-8.0.17-1.el7.x86_64 mysql-community-client-8.0.17-1.el7.x86_64 mysql-community-server-8.0.17-1.el7.x86_64 mysql-community-libs-8.0.17-1.el7.x86_64 mysql-community-libs-compat-8.0.17-1.el7.x86_64
如上,如果有安裝的話,則依次解除安裝
# 通過rpm -e解除安裝
rpm -e mysql80-community-release-el7-3.noarch
# 解除安裝不成功時使用此命令強制解除安裝
rpm -e --nodeps mysql80-community-release-el7-3.noarch
# 也可通過yum remove -y解除安裝
yum remove -y mysql80-community-release-el7-3.noarch
...
- 查詢分散的mysql目錄及配置檔案
通過`find`命令
[[email protected] ~]# find / -iname mysql
/usr/lib64/mysql
/usr/bin/mysql
/etc/logrotate.d/mysql
/var/lib/mysql
/var/lib/mysql/mysql
通過`which`命令
[[email protected] ~]# which mysql
/usr/bin/mysql
上面find命令後面`/`表示需要查詢的路徑,`-iname`引數表示忽略大小寫,查詢名字中包含`mysql`的結果。
上面查詢到的目錄或檔案需要`rm -rf`依次刪除
rm -rf /usr/lib64/mysql
...
mariadb同理,把上面命令中的`mysql`換成`mariadb`再執行一遍即可。
mysql8安裝與配置
配置 yum 源及安裝
- 下載mysql官方的yum源倉庫
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
- 安裝yum源
yum localinstall mysql80-community-release-el7-3.noarch.rpm -y
# 這裡也可執行這個命令
rpm -ivh mysql80-community-release-el7-3.noarch.rpm --force --nodeps
完成後,會再yum的配置目錄`/etc/yum.repos.d/`目錄下生成對應的yum原始檔,例如檢視一下yum源的列表:
[[email protected] ~]# yum repolist
mysql80-community/x86_64
mysql-tools-community/x86_64
mysql-connectors-community/x86_64
...
- 更新yum源
yum clean all && yum makecache
yum upgrade -y
- 安裝mysql
做了半天準備,終於可以安裝了。這裡安裝的是mysql的社群版。這一步會比較慢,我試了幾次,最快的也要20多分鐘,慢的話可能需要一兩個小時..
yum install mysql-community-server -y
- 啟動mysql
安裝完成後,啟動mysql,並設定為開機啟動
systemctl start mysqld
systemctl enable mysqld
修改配置檔案
這一環節主要針對 mysql8 及以上的版本, 如果是 mysql8 以下版本則不需要,可以直接跳過到“建立 wordpress”的環節。
因為以往的mysql版本驗證機制是“mysql_native_password”,而mysql8使用的身份驗證機制,所以需要修改下配置檔案`my.cnf`。
- 開啟配置檔案:`vim /etc/my.cnf `並新增以下內容:
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
collation-server = utf8_unicode_ci
character-set-server = utf8
default_authentication_plugin = mysql_native_password
- 登入
mysql8及以後的版本會生成一個預設的root使用者臨時登入密碼,所以如果直接通過`mysql`登入,可能會提示沒有密碼:`ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)`。
我們需要先通過`grep "temporary password" /var/log/mysqld.log`檢視臨時密碼
[[email protected] log]# grep "temporary password" /var/log/mysqld.log
2019-08-02T07:20:30.072655Z 5 [Note] [MY-010454] [Server] A temporary password is generated for [email protected]: g5+(wMKsdq*C
可以看到臨時密碼為`g5+(wMKsdq*C`,接著登入:
mysql -uroot -p'g5+(wMKsdq*C'
- 修改root使用者的臨時密碼
通過臨時密碼登入後,需要先修改密碼。mysql8對密碼要求比較高,要包含字母大小寫、數字和符號。
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '[email protected]';
建立wordpress資料庫及使用者
create database wpdb; # 建立wpdb資料庫
create user 'slevin'@'localhost' identified with mysql_native_password by '[email protected]'; # 建立slevin賬號及登入密碼
grant all privileges on wpdb.* to 'slevin'@'localhost'; # 賦予slevin賬號許可權
- 重新整理許可權及退出
完成以上操作後,重新整理許可權即可退出mysql
flush privileges;
exit;
- 重啟 mysql
systemctl restart mysqld
mariadb10 安裝及配置
配置阿里雲的 mariadb yum 源
在目錄下 /etc/yum.repos.d/ 建立檔案`MariaDB.repo` ,並把以下內容新增到所建檔案中:
#MariaDB 10.3 CentOS repository list - created 2018-10-16 15:18 UTC
#MariaDB - Setting up MariaDB Repositories - MariaDB
[mariadb]
name = MariaDB
baseurl = Index of /mariadb/yum/10.3/centos7-amd64/
gpgkey = http://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1
更新 yum 源快取
yum clean all && yum makecache
yum upgrade -y
安裝 mariadb 及相關拓展
yum install -y MariaDB-server MariaDB-client
啟動 mariadb 並設為開機啟動
systemctl start mariadb
systemctl enable mariadb
建立 worpdress 使用的資料庫及使用者
輸入`mysql`登入資料庫,然後依次執行
create database wpdb;
grant all privileges on wpdb.* to 'slevin'@'localhost' identified by '[email protected]';
flush privileges;
exit;
php7安裝及配置
配置 yum 源
由於linux的yum源不存在php7.x,所以我們要更改yum源。而php7.x有兩個源可以選擇,一個是webtatic提供的,也就是php70w,那個w指得就是webtatic,另一個可以使用remi源。這裡主要以webtatic進行展開講解。
- 首先配置 epel 源
yum install -y epel-release
# 或者配置阿里雲映象的 epel 源
cd /etc/yum.repos.d
wget https://mirrors.aliyun.com/repo/epel-7.repo
- 再配置 wetatic 源
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
- 更新 yum 源快取
yum clean all && yum makecache
yum upgrade -y
可以通過`yum repolist `檢視確認一下 yum 源列表
通過`yum list |grep php7`檢視可安裝的 php7 以上版本列表資訊
安裝
安裝 php 及相應拓展。這裡安裝的是7.2版本,也就是php72w,對應的拓展都是以此為字首,如果需要其他版本如 php70w、php71w, 對應拓展的字首也需更改。
yum install -y php72w php72w-fpm php72w-mysql php72w-common php72w-cli php72w-gd
#更全的依賴
#yum install -y php72w php72w-fpm php72w-mysql php72w-common php72w-cli php72w-gd php72wp-dba php72w-devel php72w-embedded php72w-imap php72w-interbase php72w-intl php72w-ldap php72w-mbbstring php72w-mysqlnd php72w-odbc php72w-opcache php72w-pdo php72w-pdo_dblib php72w-pear php72w-pecl-apcu php72w-pecl-imagick php72w-pecl-redis php72w-pecl-xdebug php72w-pgsql php72w-phpdbg php72w-process php72w-pspell php72w-recode php72w-snmp php72w-soap php72w-tidy php72w-xml php72w-xmlrpc
相關配置
使用vim編輯器編輯此檔案
vim /etc/php-fpm.d/www.conf
在 www.conf 檔案中,修改user、group欄位,這裡使用“nginx”使用者執行PHP服務,方便之後許可權規劃:
user = nginx
group = nginx
### 啟動服務並設為開機啟動
systemctl start php-fpm && systemctl enable php-fpm
安裝 wordpress
依次執行以下命令:
mkdir /var/wordpress && cd /var/wordpress/
wget https://cn.wordpress.org/latest-zh_CN.zip && unzip latest-zh_CN.zip
mv wordpress/* /var/wordpress/ && cd /var
chmod 755 -R wordpress
chown nginx:nginx -R wordpress
如果以上操作都沒問題的話,這個時候訪問你的域名或者伺服器的ip的ip地址,就會看到wordpress的安裝介面了。
安裝介面這裡填入上面我們建立好的mysql賬戶即可。
參考
- [聊聊這兩天在linux安裝PHP7遇到的坑,真的是坑死人不償命啊](聊聊這兩天在linux安裝PHP7遇到的坑,真的是坑死人不償命啊 - H-大叔 - 部落格園)
- [CentOS 7.2 安裝 PHP 7 記錄](CentOS 7.2 安裝 PHP 7 記錄)
- [在centos7通過yum安裝PHP7](https://blog.csdn.net/liubag/article/details/53138366)
- [centos7.5下yum 安裝mariadb10.3詳解](https://blog.csdn.net/lu8000/article/details/83148577#2%EF%BC%8C%E5%88%9B%E5%BB%BA%20MariaDB.repo)