Centos7安裝Percona5.7


OS: Centos7.0
DB: Percona5.7

1. 通過yum安裝

## 刪除之前的mysql數據庫, 我用的是centos7.再安裝虛擬機的時候,預裝了很多軟件。所以mysql和mariadb的一些東西安裝了。必須要刪除掉
rpm -qa | grep mysql
rpm -qa | grep mariadb

rpm -e mysql 
rpm -e --nodeps mysql 
yum remove mariadb-libs-5.5.41-2.el7_0.x86_64

## 安裝其他依賴包:perl 和libaio
yum -y install perl-Module-Install.noarch
yum -y install libaio libaio-devel

## 配置yum安裝源
yum install https://www.percona.com/redir/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm  ## 最新的是0.1-4

## 安裝percona
yum install Percona-Server-server-57 

2. 通過rpm安裝

wget https://www.percona.com/downloads/Percona-Server-LATEST/Percona-Server-5.7.18-16/binary/redhat/7/x86_64/Percona-Server-5.7.18-16-rd7301f8-el7-x86_64-bundle.tar

tar xvf Percona-Server-5.7.18-16-rd7301f8-el7-x86_64-bundle.tar

rpm -ivh Percona-Server-shared-compat-57-5.7.18-16.1.el7.x86_64
rpm -ivh Percona-Server-shared-57-5.7.18-16.1.el7.x86_64
rpm -ivh Percona-Server-client-57-5.7.18-16.1.el7.x86_64
rpm -ivh Percona-Server-server-57-5.7.18-16.1.el7.x86_64

3. 配置

## 配置用戶組
groupadd mysql
useradd -r -g mysql mysql 

mysqld --initialize --user=mysql --datadir=/user/local/webserver/mysql ## 如果沒報錯,恭喜你很幸運

vim /etc/percona-server.conf.d/mysqld.cnf

[mysqld]

datadir=/usr/local/webserver/mysql
socket=/usr/local/webserver/mysql/mysql.sock

# initialize need
explicit_defaults_for_timestamp=true

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[mysql]
socket=/usr/local/webserver/mysql/mysql.sock

chown -R mysql:mysql /usr/local/webserver/mysql

service mysqld start ## 如果沒報錯,恭喜你很幸運。

4. 登錄

cat /var/log/mysqld.log | grep "temporary password" ## 找到root的初始密碼。

mysql -u root -p 

set password = password('root');

5. ERROR

  • mysqld --initialize 報錯:TIMESTAMP with implicit DEFAULT value is deprecated

    從 5.6開始,timestamp 的默認行為已經是 deprecated

vim /etc/percona-server.conf.d/mysqld.cnf

explicit_defaults_for_timestamp=true ## 加上這段(顯示指定默認值為timestamp類型的字段)
  • mysql --initialize 報錯:initialize specified but the data directory has files in it. Aborting.

    datadir 已經存在了。刪除即可

  • service mysqld start 報錯:InnoDB: .\ibdata1 must be writable > InnoDB 在啟動時需要配置LOG File的目錄,如果沒有制定目錄,則會在MySQL Data目錄下創建2個日志文件ib_logfile0 and ib_logfile1,在創建的時候需要確保MYSQL擁有對該目錄的權限。

ps -ef | grep mysqld
kill 21222 ## kill掉mysqld的進程
rm /usr/local/webserver/mysql/ib_logfil*
service mysqld start
  • service mysqld start 報錯:Could not create unix socket lock file /user/lib/mysql/mysql.sock.lock.
## 很簡單的問題。加權限即可
chown -R mysql:mysql /user/lib/mysql/

6. 總結

安裝mysql的數據庫必要步驟有:

  1. 安裝依賴包
  2. 安裝mysql數據庫
  3. 初始化服務(mysqld --initialize)
  4. 修改配置文件,配置datadir目錄權限和用戶
  5. 啟動服務,鏈接數據庫

參考資料

  1. MySQL 5.6 中TIMESTAMP with implicit DEFAULT value is deprecated錯誤
  2. MYSQL 服務無法啟動,錯誤日志:InnoDB: .\ibdata1 must be writable
  3. 如何在 CentOS 7 上安裝 Percona服務器
  4. percona5.7 源碼安裝

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM