mysql 原始碼安裝-5.7-17-19版本
由於專案需要,現在要使用5.7.19版本的mysql
1:首先下載mysql 二進位制安裝檔案
mysql-5.6.19.tar.gz
存放目錄/mysql/mysql-5.6.19.tar.gz
tar -xf mysql-5.6.19.tar.gz
cd mysql-5.6.19
進行cmake,但是提示Cmake版本過低,至少需要2.8的版本
2:下載cmake
cmake-2.8.10.2.tar.gz
tar -xf cmake-2.8.10.2.tar.gz
./configure
make && make install
3:進行cmake
先建立mysql 安裝目錄以及資料檔案存放目錄
mkdir -p /mysql/mysql
mkdir -p /mysql/mysql/data
同時需要建立mysql 賬號
useradd mysql
passwd mysql
再進行目錄授權:
chown -R mysql:mysql /mysql
這個是5.7.17版本的編譯安裝
cd mysql-5.6.17
cmake \
-DCMAKE_INSTALL_PREFIX=/mysql/ \ //mysql軟體安裝的根目錄
-DMYSQL_DATADIR=/mysql/data \ //mysql 資料檔案存放目錄
-DSYSCONFDIR=/etc \ //mysql 配置檔案(my.cnf)目錄
-DWITH_MYISAM_STORAGE_ENGINE=1 \ //儲存引擎選項
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ //以啟用InnoDB、引擎支援:
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \ //啟用載入本地資料
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \ //預設字符集
-DDEFAULT_COLLATION=utf8_general_ci //字符集校對
進行編譯,編譯時報錯如下:
heck size of wctype_t - done
-- 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:85 (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:128 (FIND_CURSES)
cmake/readline.cmake:202 (MYSQL_USE_BUNDLED_EDITLINE)
CMakeLists.txt:411 (MYSQL_CHECK_EDITLINE)
這個報錯是提示缺少ncurses-devel依賴包
進行下載:ncurses-devel-5.7-3.20090208.el6.x86_64.rpm
rpm -ivh ncurses-devel-5.7-3.20090208.el6.x86_64.rpm
warning: ncurses-devel-5.7-3.20090208.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing... ########################################### [100%]
1:ncurses-devel ########################################### [100%]
同時rm -rf CMakeCache.txt 然後進行重新cmake
完成之後,進行make && make install 進行mysql 安裝
- Installing: /mysql/man/man1/msql2mysql.1
-- Installing: /mysql/man/man8/mysqld.8
-- Installing: /mysql/support-files/solaris/postinstall-solaris
算安裝完成了,接下來就需要進行配置
這是5.7.17的步驟
4: 進入到mysql的安裝目錄,/mysql下:進行mysql 資料庫初始化
scripts/mysql_install_db --basedir=mysql --datadir=/mysql/data --user=mysql //初始化mysql資料庫
但是報錯
[root@db_test scripts]# ./mysql_install_db --basedir=mysql --datadir=/mysql/data --user=mysql
FATAL ERROR: Could not find ./bin/my_print_defaults
cd /u01/soft/mysql-5.6.17/support-files
cp my-default.cnf /usr/local/mysql/my.cnf //copy配置檔案
[root@db_test support-files]# chown -R mysql:mysql /mysql
vi /my.cnf 新增以下內容
[mysqld]
basedir = /mysql
datadir = /mysql/data
log-error = /mysql/mysql_error.log
pid-file = /mysql/mysql.pid
user = mysql
tmpdir = /tmp
初始化mysql資料庫
[root@db_test scripts]# ./mysql_install_db --basedir=/mysql --datadir=/mysql/data --user=mysql
Installing MySQL system tables...2017-05-11 15:01:56 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2017-05-11 15:01:56 8161 [Note] InnoDB: Using atomics to ref count buffer pool pages
2017-05-11 15:01:56 8161 [Note] InnoDB: The InnoDB memory heap is disabled
2017-05-11 15:01:56 8161 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2017-05-11 15:01:56 8161 [Note] InnoDB: Compressed tables use zlib 1.2.3
2017-05-11 15:01:56 8161 [Note] InnoDB: Using CPU crc32 instructions
2017-05-11 15:01:56 8161 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2017-05-11 15:01:56 8161 [Note] InnoDB: Completed initialization of buffer pool
2017-05-11 15:01:56 8161 [Note] InnoDB: Highest supported file format is Barracuda.
2017-05-11 15:01:56 8161 [Note] InnoDB: Log scan progressed past the checkpoint lsn 1600617
2017-05-11 15:01:56 8161 [Note] InnoDB: Database was not shutdown normally!
2017-05-11 15:01:56 8161 [Note] InnoDB: Starting crash recovery.
2017-05-11 15:01:56 8161 [Note] InnoDB: Reading tablespace information from the .ibd files...
2017-05-11 15:01:56 8161 [Note] InnoDB: Restoring possible half-written data pages
2017-05-11 15:01:56 8161 [Note] InnoDB: from the doublewrite buffer...
或使用下列命令把mysql新增為系統服務
cd/mysql/support-files/
cp ./mysql.server /etc/init.d/mysqld
/etc/init.d/mysqld start
在配置環境變數
export PATH=$PATH:/mysql/bin
[mysql@db_test ~]$ mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.17 Source distribution
Copyright (c) 2000, 2014, 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> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| test |
+--------------------+
2 rows in set (0.00 sec)
5:5.7.19版本的安裝步驟
5.7.19版本安裝是時候提示
CMake Error at cmake/boost.cmake:81 (MESSAGE):
You can download it with -DDOWNLOAD_BOOST=1 -DWITH_BOOST=<directory>
所以下載boost軟體
[root@localhost ~]# wget
tar -xf boost_1_59_0.tar.gz
cp -r boost_1_59_0 /usr/local/boost
進行安裝
cmake \
-DCMAKE_INSTALL_PREFIX=/mysql/mysql \
-DMYSQL_DATADIR=/mysql/mysql/data \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_USER=mysql \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DENABLE_DOWNLOADS=1 \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/boost
完成之後,進行make && make install
時間很長,可以出去抽根菸。
配置環境變數
export PATH=/mysql/mysql/bin:/mysql/mysql/lib:$PATH
時間很長
cd mysql/bin
./mysqld --initialize-insecure --user=mysql --basedir=/mysql/mysql --datadir=/mysql/data
[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@localhost mysql]# chmod a+x /etc/init.d/mysqld
再編輯/etc/my.cnf
[mysqld]
datadir=/mysql/data
socket=/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/mysql/mysql/logs/mysqld.log
pid-file=/mysql/mysql/logs/mysqld.pid
[client]
default-character-set=utf8
socket=/mysql/mysql.sock
[mysql]
default-character-set=utf8
socket=/mysql/mysql.sock
啟動mysql
[root@localhost mysql]# service mysqld start
Starting MySQL.2018-08-30T01:45:21.383785Z mysqld_safe error: log-error set to '/mysql/mysql/logs/mysqld.log', however file don't exists. Create writable for user 'mysql'.
The server quit without updating PID file (/mysql/data/loca[失敗]localdomain.pid)
報錯,需要建立檔案。
[root@localhost logs]# touch mysqld.log
[root@localhost logs]# touch mysqld.pid
[root@localhost logs]# chown -R mysql:mysql /mysql
[root@localhost mysql]# service mysqld start
Starting MySQL. [確定]
[root@localhost mysql]#
[mysql@localhost ~]$ mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.19 Source distribution
Copyright (c) 2000, 2017, 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> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
mysql>
再修改root的密碼
Database changed
mysql> select host,user,authentication_string from user;
+-----------+---------------+-------------------------------------------+
| host | user | authentication_string |
+-----------+---------------+-------------------------------------------+
| localhost | root | |
| localhost | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
+-----------+---------------+-------------------------------------------+
3 rows in set (0.00 sec)
mysql> UPDATE user SET authentication_string=PASSWORD('shenzhen#123')WHERE user='root';
Query OK, 1 row affected, 1 warning (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 1
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> select host,user,authentication_string from user;
+-----------+---------------+-------------------------------------------+
| host | user | authentication_string |
+-----------+---------------+-------------------------------------------+
| localhost | root | *4E25F9206A350692D2F5AC0512B41C69759FF312 |
| localhost | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
+-----------+---------------+-------------------------------------------+
3 rows in set (0.00 sec)
mysql>
mysql>
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28869493/viewspace-2213116/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 連網安裝mysql與原始碼安裝mysqlMySql原始碼
- MySQL 5.7.28 原始碼安裝MySql原始碼
- Mysql for Linux安裝配置之—— 原始碼安裝MySqlLinux原始碼
- mysql5.5.20原始碼安裝MySql原始碼
- 【轉】MySQL原始碼編譯安裝MySql原始碼編譯
- 安裝mysql(版本:8.0.28)MySql
- MySQL5.7.16原始碼編譯安裝MySql原始碼編譯
- 阿里雲mysql原始碼編譯安裝阿里MySql原始碼編譯
- Linux使用原始碼來安裝MySQL 5.7Linux原始碼MySql
- mysql之tar.gz原始碼安裝MySql原始碼
- mysql8.0原始碼一鍵安裝指令碼MySql原始碼指令碼
- MYSQL5.7.22 原始碼安裝 主從搭建MySql原始碼
- Mysql--所有版本安裝以及完全解除安裝MySql
- Laradock php mysql 安裝多版本PHPMySql
- mysql多版本例項安裝MySql
- MySQL 5 - 8 各版本快速安裝指令碼內容MySql指令碼
- CentOS7.X原始碼安裝MySQL-5.7.18CentOS原始碼MySql
- 電腦本地安裝不同版本MySQLMySql
- Mysql5.6 for Centos6.5原始碼編譯安裝MySqlCentOS原始碼編譯
- 原始碼安裝openresty原始碼REST
- nginx原始碼安裝Nginx原始碼
- 原始碼安裝postgresql原始碼SQL
- Nginx 原始碼安裝Nginx原始碼
- 原始碼安裝GO原始碼Go
- PostgreSQL 10.12 安裝系列 - 原始碼安裝SQL原始碼
- 【推薦 - 原始碼安裝】nginx - 安裝原始碼Nginx
- Ubuntu 16.04下 Mysql5.7.17原始碼編譯與安裝UbuntuMySql原始碼編譯
- MYSQL5.6.40原始碼安裝 主從搭建 主主搭建MySql原始碼
- GDB 除錯 Mysql 實戰(一)原始碼編譯安裝除錯MySql原始碼編譯
- 基於Linux的MySQL5.7原始碼編譯安裝LinuxMySql原始碼編譯
- MYSQL5.7.22 原始碼安裝 主從搭建 + KEEPALIVED高可用MySql原始碼
- yum安裝與原始碼安裝比較原始碼
- linux安裝python3(原始碼安裝)LinuxPython原始碼
- linux 系統中可以這樣安裝指定版本的R(原始碼)Linux原始碼
- paramiko 2.4.1原始碼安裝原始碼
- macbook 原始碼安裝 redisMac原始碼Redis
- macbook 原始碼安裝 nginxMac原始碼Nginx
- docker原始碼安裝NginxDocker原始碼Nginx