在CentOS7上安裝MySQL5.7-源碼包方式

来源:https://www.cnblogs.com/oracle-ziyuhou/archive/2018/05/11/8889383.html
-Advertisement-
Play Games

缺點:後期升級不方便,生產中建議RPM包方式安裝 CentOS7預設安裝了和MySQL有相容性的MariaDB資料庫,在我們安裝MySQL5.7之前為了避免發生衝突首先刪除MariaDB。 一、基於官方源碼包安裝 下載 mysql-5.7.22.tar.gz 安裝cmake # yum -y ins ...


缺點:後期升級不方便,生產中建議RPM包方式安裝

 

CentOS7預設安裝了和MySQL有相容性的MariaDB資料庫,在我們安裝MySQL5.7之前為了避免發生衝突首先刪除MariaDB。

# rpm -qa | grep maria

# yum remove mariadb-libs -y

一、基於官方源碼包安裝

下載 mysql-5.7.22.tar.gz

安裝cmake

# yum -y install cmake

# tar -zxvf mysql-5.7.22.tar.gz -C /usr/src

# cd /usr/src/mysql-5.7.22

# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/var/lib/mysql -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock -DENABLED_LOCAL_INFILE=1 -DWITH_EXTRA_CHARSETS=all -DMYSQL_USER=mysql

-- Running cmake version 2.8.11
-- Configuring with MAX_INDEXES = 64U
-- CMAKE_GENERATOR: Unix Makefiles
-- SIZEOF_VOIDP 8
-- MySQL 5.7.22
-- Packaging as: mysql-5.7.22-Linux-x86_64
-- Downloading boost_1_59_0.tar.gz to /usr/local/boost
-- [download 100% complete]
-- Download failed, error: 35;"SSL connect error"
CMake Error at cmake/boost.cmake:194 (MESSAGE):
  You can try downloading
  http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
  manually using curl/wget or a similar tool
Call Stack (most recent call first):
  CMakeLists.txt:506 (INCLUDE)


-- Configuring incomplete, errors occurred!

解決:下載boost_1_59_0.tar.gz,放在/usr/local/boost下

# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/var/lib/mysql -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock -DENABLED_LOCAL_INFILE=1 -DWITH_EXTRA_CHARSETS=all -DMYSQL_USER=mysql -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost

...

-- Check size of wint_t
-- Check size of wint_t - done
-- Could NOT find Curses (missing:  CURSES_LIBRARY CURSES_INCLUDE_PATH)
CMake Error at cmake/readline.cmake:64 (MESSAGE):
  Curses library not found.  Please install appropriate package,

      remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.
Call Stack (most recent call first):
  cmake/readline.cmake:107 (FIND_CURSES)
  cmake/readline.cmake:197 (MYSQL_USE_BUNDLED_EDITLINE)
  CMakeLists.txt:534 (MYSQL_CHECK_EDITLINE)


-- Configuring incomplete, errors occurred!

解決:

#yum -y install ncurses-devel

# rm -rf /usr/src/mysql-5.7.22/CMakeCache.txt

 

# gmake

# make install

 

安裝之後的一些配置:

# cd /usr/local/mysql/support-files/
]# ll mysql.server
-rwxr-xr-x 1 root root 10569 Apr 20 11:11 mysql.server
# cp mysql.server /etc/init.d/mysql

# cd /var/lib/
# mkdir mysql
# chown mysql. mysql
# vi /etc/my.cnf

[mysqld]
basedir = /usr/local/mysql
datadir = /var/lib/mysql
port = 3306
socket = /tmp/mysqld.sock

mysql_install_db 被廢棄了,取而代之的是 mysqld –initialize

# /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --initialize  --datadir=/var/lib/mysql --basedir=/usr/local/mysql --user=mysql
2018-04-20T07:49:28.669315Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2018-04-20T07:49:29.022395Z 0 [Warning] InnoDB: New log files created, LSN=45790
2018-04-20T07:49:29.090056Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2018-04-20T07:49:29.151786Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 5ae072ef-446f-11e8-aa2d-0050568810c7.
2018-04-20T07:49:29.153819Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2018-04-20T07:49:29.155286Z 1 [Note] A temporary password is generated for root@localhost: ;1ruP:p6R8te
# ll /var/lib/mysql/
總用量 110628
-rw-r----- 1 mysql mysql       56 4月  20 15:49 auto.cnf
-rw-r----- 1 mysql mysql      417 4月  20 15:49 ib_buffer_pool
-rw-r----- 1 mysql mysql 12582912 4月  20 15:49 ibdata1
-rw-r----- 1 mysql mysql 50331648 4月  20 15:49 ib_logfile0
-rw-r----- 1 mysql mysql 50331648 4月  20 15:49 ib_logfile1
drwxr-x--- 2 mysql mysql     4096 4月  20 15:49 mysql
drwxr-x--- 2 mysql mysql     8192 4月  20 15:49 performance_schema
drwxr-x--- 2 mysql mysql     8192 4月  20 15:49 sys

# systemctl start mysql
# ps -ef|grep mysql

# vi ~/.bash_profile

PATH=$PATH:$HOME/bin:/usr/local/mysql/bin

# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

配置文件中添加如下一行,跳過密碼驗證

# cat /etc/my.cnf
[mysqld]

skip-grant_tables

重啟MySQL

# systemctl restart mysql

# mysql

mysql> update mysql.user set authentication_string=password('oracle') where user='root' ;

再次重啟MySQL

# systemctl restart mysql

# mysql

mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

mysql> set password=password('123456');

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

 

二、基於官方源代碼RMP構建自定義MySQLRPM(一般用於企業內部開發,生產中還是MySQL包的方式安裝)

創建一個普通用戶,用於構建自定義的RPM包

# useradd tubeliu
# cp mysql-community-5.7.22-1.el7.src.rpm /home/tubeliu/
# chown tubeliu.tubeliu /home/tubeliu/ -R
# yum list | grep rpm-build
      
# yum -y install rpm-build

# su - tubeliu
 ls
mysql-community-5.7.22-1.el7.src.rpm
$ rpmbuild ~
錯誤:文件 /home/tubeliu 不是常規文件。
$ ls
mysql-community-5.7.22-1.el7.src.rpm  rpmbuild
$ cd rpmbuild/
$ ls
BUILD  BUILDROOT  RPMS  SOURCES  SPECS  SRPMS
$ cd ..
$ ls
mysql-community-5.7.22-1.el7.src.rpm  rpmbuild
$ rpm -ivh mysql-community-5.7.22-1.el7.src.rpm
正在升級/安裝...
   1:mysql-community-5.7.22-1.el7     ################################# [100%]
$ cd rpmbuild/
$ ls
BUILD  BUILDROOT  RPMS  SOURCES  SPECS  SRPMS
$ ls -R
.:
BUILD  BUILDROOT  RPMS  SOURCES  SPECS  SRPMS

./BUILD:

./BUILDROOT:

./RPMS:

./SOURCES:
boost_1_59_0.tar.bz2  filter-requires.sh   mysql-5.7.22.tar.gz
filter-provides.sh    mysql-5.6.37.tar.gz

./SPECS:
mysql.spec

./SRPMS:
$ cd SPECS/
$ vi mysql.spec
$ rpmbuild -bb mysql.spec

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一 、介紹 二 、多表連接查詢 三 、符合條件連接查詢 四 、子查詢 一、介紹 本節主題 多表連接查詢 複合條件連接查詢 子查詢 準備表 #建表 create table dep( id int, name varchar(20) ); create table emp( id int primar ...
  • CURL的操作 curl是利用URL語法在命令行方式下工作的開源文件傳輸工具,使用curl可以簡單實現常見的get/post請求。簡單的認為是可以在命令行下麵訪問url的一個工具。在centos的預設庫裡面是有curl工具的,如果沒有請yum安裝即可。 curl -X 指定http的請求方法 有HE ...
  • 一、 單表查詢的語法 二 、關鍵字的執行優先順序(重點) 三 、簡單查詢 四 、WHERE約束 五、 分組查詢:GROUP BY 六 、HAVING過濾 七 、查詢排序:ORDER BY 八 、限制查詢的記錄數:LIMIT 九、 使用正則表達式查詢 一 、單表查詢的語法 基本語法格式: 二、 關鍵字的 ...
  • 告警提示其實已經很明顯了OGG-02803 Encountered a Data Guard role transition. Alter Extract to SCN 15,756,246 and restart Extract, or recreate Extract with the corr ...
  • 可以使用percona-toolkit包中的pt-archiver工具來進行歷史數據歸檔 1、清理線上過期數據。 2、清理過期數據,並把數據歸檔到本地歸檔表中,或者遠端歸檔伺服器。 3、兩張表之間的數據不完全相同,希望合併。此時加上–ignore或–replace選項,可以輕鬆實現。 4、導出線上數 ...
  • SELECT a.index_id , b.name , a.avg_fragmentation_in_percent FROM sys.dm_db_index_physical_stats(DB_ID(), OBJECT_ID(''), NULL, NULL, NULL) as a JOIN sy ...
  • use master alter database mfv408_Tift1 add log file ( name=mfv408_Tift1_log,filename='C:\_DISK\data1\mfv408_Tift1_log2.ldf', SIZE = 1024MB, MAXSIZE = ...
  • https://msdn.microsoft.com/zh-cn/library/ms189822(v=sql.120).aspx Microsoft SQL Server 將保留關鍵字用於定義、操作和訪問資料庫。 保留關鍵字是 SQL Server 使用的 Transact-SQL 語言語法的一部 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...