編譯安裝Mysql8.0.22
安裝 cmake
cd ~
yum -y install wget
wget http://cmake.org/files/v3.8/cmake-3.8.2-Linux-x86_64.tar.gz
tar zxvf cmake-3.8.2-Linux-x86_64.tar.gz
mv cmake-3.8.2-Linux-x86_64 /usr/local/cmake
echo -e "\nexport PATH=/usr/local/cmake/bin:\$PATH" >>/etc/profile
source /etc/profile
安裝gcc
安裝編譯安裝時需要用的工具包
yum -y install bzip2 gcc gcc-c++
wget http://mirror.hust.edu.cn/gnu/gcc/gcc-5.5.0/gcc-5.5.0.tar.gz
tar zxvf gcc-5.5.0.tar.gz
cd gcc-5.5.0
下載mpfr、gmp、mpc、isl等依賴包
./contrib/download_prerequisites
開始編譯安裝 gcc
mkdir build && cd build
../configure --prefix=/usr/ --enable-checking=release \
--enable-languages=c,c++ --disable-multilib
make -j4 && make install
注意了,上面那個 prefix 必須用 /usr/,以便覆蓋掉舊版的 gcc ,以免編譯程式找不到新版 gcc
檢查驗證 gcc 版本
gcc -v
yum -y install ncurses-devel bison openssl-devel
下載原始碼
(可略過以下四步)
1.開啟 http://mysql.com/downloads/下載頁面
2.頁面下方點選 MySQL Community(GPL)Downloads
3.點選 MySQL Communtiy Server
4.這個頁面的版本就是 MySQL 的最新版本,選擇 "Source Code" 下載原始碼,第二欄選擇 Generic Linux (Architecture Independent), 下載選擇 "Compressed TAR Archive, Includes Boost Headers"。
直接下載
cd ~
wget http://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-boost-8.0.22.tar.gz
編譯安裝
tar zxvf mysql-boost-8.0.22.tar.gz
cd mysql-8.0.22
修改版本號防止版本暴露(選擇性操作)
vi MYSQL_VERSION
修改為以下內容
MYSQL_VERSION_MAJOR=100
MYSQL_VERSION_MINOR=9
MYSQL_VERSION_PATCH=99
MYSQL_VERSION_EXTRA=
cmake編譯:
cmake . \
-DWITH_BOOST=./boost/ \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysql/mysql3306/data \
-DSYSCONFDIR=/ \
-DWITH_DEBUG=1 \
-DWITHOUT_FEDERATED_STORAGE_ENGINE=1 \
-DWITHOUT_ARCHIVE_STORAGE_ENGINE=1 \
-DFORCE_INSOURCE_BUILD=1
SYSCONFDIR=/ # 修改讀取 my.cnf 的路徑
WITH_DEBUG=1 # 可 debug 的版本
WITHOUT_FEDERATED_STORAGE_ENGINE=1 \ # 摘掉 FEDERATED 儲存引擎
WITHOUT_ARCHIVE_STORAGE_ENGINE=1 \ # 摘掉 ARCHIVE 儲存引擎
編譯安裝
make -j4 && make install
如未報錯表示編譯完畢
配置環境變數
echo -e "export PATH=/usr/local/mysql/bin:\$PATH" >>/etc/profile
source /etc/profile
驗證
[root@localhost mysql-8.0.22]# mysql -V
mysql Ver 100.9.99 for Linux on x86_64 (Source distribution)
建組建使用者
groupadd mysql
useradd -M -g mysql -s /sbin/nologin -d /usr/local/mysql mysql
建立目錄結構
mkdir -p /data/mysql/mysql3306/{data,logs,tmp}
chown mysql:mysql /data/mysql/mysql3306/ -R
準備配置檔案
vi /my.cnf
[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /data/mysql/mysql3306/data
tmpdir = /data/mysql/mysql3306/tmp
socket = /tmp/mysql.sock
log_error = /data/mysql/mysql3306/error.log
初始化例項
mysqld --initialize-insecure
cd data
檢視data中是否有資料
ll
啟動 MySQL
mysqld &
驗收環境
1. 確認版本號,確認是 debug 版本
cat /data/mysql/mysql3306/error.log |grep -i version
mysql -V
2. 確認預設讀取的配置檔案是 /my.cnf
yum install strace -y
strace mysql -e "select 1" 2>2.log
cat 2.log |grep my.cnf
檢查發現,讀取 /etc/my.cnf ,但後面還會讀取 /my.cnf 。
說明 SYSCONFDIR=/ 編譯引數確實生效了。
3.登入mysql
mysql -u root -p 如果無法登入報錯:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'
可以用如下方式:
Mysql -u root -h 127.0.0.1 -p
密碼直接回車即可登入
登入後檢視root的host,
mysql> use mysql;
mysql> select user,host from user;
root | localhost
如果root對應的為localhost那麼修改密碼則需要執行如下
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123!@#qwe.';
如果root對應%那麼將localhost改為%即可
FLUSH PRIVILEGES;
quit;
退出後如果不像加-h進行登入那麼需要先找到mysql.sock
find / -name mysql.sock
然後做個軟連線
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
即可不用-h登入
「其他文章」
- 編譯安裝Mysql8.0.22
- 由Hadoop驅動的原始大資料時代已於2019年6月結束…….858
- Apache Jmeter 教程
- 中國科學院正式回覆饒毅:不再進行調查
- Android熱修復及外掛化原理
- 【資料庫MySQL】練習---備份及恢復
- 一組強大的CSS3 Material 按鈕
- No.8 bin和sbin的區別
- nginx配置ssl證書訪問不了https網站
- 大根堆與小根堆的理解,如何手寫一個堆,以及什麼時候用自己手寫的堆,什麼時候用語言提供堆的api,(二者的區別)
- FreeRTOS的License許可說明~
- 穩定流暢、高清晰, 華為HMS Core帶來一站式視訊服務
- “模板方法 職責鏈設計模式”解決業務場景重複以及場景之間依賴
- vi視窗切分命令(split命令)
- Linux學習筆記
- MySQL事務隔離級別以及髒讀、幻讀、不可重複讀示例
- 基於live555的rtsp播放器:資料接收(拉流)
- APACHE 2.2.15 TOMCAT6.0.26配置負載均衡
- 資料恢復基礎和進階教程(一)
- 2011年11月51CTO桌布點評活動獲獎名單【已結束】