久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Mysql 8.0如何實(shí)現(xiàn)源碼編譯安裝

共計(jì) 8177 個(gè)字符,預(yù)計(jì)需要花費(fèi) 21 分鐘才能閱讀完成。

這篇文章主要為大家展示了“Mysql 8.0 如何實(shí)現(xiàn)源碼編譯安裝”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓丸趣 TV 小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Mysql 8.0 如何實(shí)現(xiàn)源碼編譯安裝”這篇文章吧。

一、準(zhǔn)備工作 1. 下載安裝包

路徑:https://dev.mysql.com/downloads/mysql/

這里選擇 mysq-8.0.16.tar.gz

2. 清理已有版本

## 查詢

rpm -qa | grep mysql
rpm -qa | grep maria

## 清理(如果存在的話)

yum remove mysql

## 或者  

yum remove mariadb

3. 安裝依賴包 (1) 常規(guī)依賴

yum -y install gcc gcc-c++ ncurses ncurses-devel libaio-devel openssl openssl-devel

(2)特殊版本的依賴

編譯的時(shí)候,分別錯(cuò)誤提示:

                       
CMake 3.4.3 or higher is required.

                        GCC 5.3 or newer is required

所以需要安裝 Cmake 和 GCC 的相關(guān)版本

請(qǐng)參考:   
http://blog.itpub.net/69915315/viewspace-2648182

二、編譯安裝(軟件)1.  解壓安裝包

tar -zxvf tar -zxvf mysql-8.0.16.tar.gz

2. cmake 配置

   (1) 進(jìn)入目錄 mysql-8.0.16 , 建立一個(gè)目錄,用于存放編譯好的軟件

 cd mysql-8.0.16
 mkdir xiaochong

   (2) 進(jìn)入子目錄 xiaochong,進(jìn)行編譯前的配置。主要 cmake 后是 . . , 執(zhí)行其父目錄。

 cd xiaochong

    配置參數(shù):

cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DENABLED_LOCAL_INFILE=ON \
-DWITH_INNODB_MEMCACHED=ON \
-DWITH_SSL=system \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DCOMPILATION_COMMENT= xiaochong edition  \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/boost \
-DCMAKE_CXX_COMPILER=/usr/bin/g++ \
-DWITH_BOOST=/tmp

3.  編譯

make -j 10

4 . 安裝

make install

末尾如下提示,表示成功。

— Configuring done

— Generating done

— Build files have been written to: /software/mysql-8.0.16/xiaochong

————————————————————————————————–

錯(cuò)誤 1   c++: error: unrecognized command line option‘-std=c++14’

解決方式:添加:-DCMAKE_CXX_COMPILER=/usr/bin/g++

三、創(chuàng)建數(shù)據(jù)庫(kù) 1、創(chuàng)建用戶

groupadd mysql
useradd -g mysql mysql

 2. 創(chuàng)建相關(guān)目錄

mkdir -p /data/mysql/{3306,3307}/{data,log,tmp,innodb,innodb_log}

這里是兩個(gè)實(shí)例的目錄,分別是 3306 和 3307.

創(chuàng)建后,目錄結(jié)構(gòu)如下:

[root@mysql80 /]# cd data

[mysql@mysql80 data]$ tree  .

.

└── mysql

├── 3306

│ ├── data

│ ├── innodb

│ ├── innodb_log

│ ├── log

│ └── tmp

└── 3307

├── data

├── innodb

├── innodb_log

├── log

└── tmp

3. 修改目錄權(quán)限

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

4. 添加環(huán)境變量

 echo  export PATH=$PATH:/usr/local/mysql/bin    /etc/profile
 source /etc/profile

5. 添加配置文件

(1)3306

vim /data/mysql/3306/my3306.cnf

內(nèi)容如下:

[client]
port=3306
socket=/data/mysql/3306/mysql.sock
[mysqld]
port=3306
user=mysql
socket=/data/mysql/3306/mysql.sock
pid-file=/data/mysql/3306/mysql.pid
basedir=/usr/local/mysql
datadir=/data/mysql/3306/data
tmpdir=/data/mysql/3306/tmp
open_files_limit=60000
#explicit_defaults_for_timestamp
server-id=3306
lower_case_table_names=1
character-set-server=utf8
#federated
#sql_mode=STRICT_TRANS_TABLES
max_connections=1000
max_connect_errors=100000
interactive_timeout=86400
wait_timeout=86400
sync_binlog=0
back_log=100
default-storage-engine=InnoDB
log_slave_updates=1
#*********** Logs related settings ***********
log-bin=/data/mysql/3306/log/mysql3306-bin
binlog_format=mixed
binlog_cache_size=32m
max_binlog_cache_size=64m
max_binlog_size=512m
long_query_time=1
log_output=FILE
log-error=/data/mysql/3306/log/mysql-error.log
slow_query_log=1
slow_query_log_file=/data/mysql/3306/log/slow_statement.log
#log_queries_not_using_indexes
general_log=0
general_log_file=/data/mysql/3306/log/general_statement.log
#expire-logs-days = 14
binlog_expire_logs_seconds=1728000
relay-log=/data/mysql/3306/log/relay-bin
relay-log-index=/data/mysql/3306/log/relay-bin.index
#****** MySQL Replication New Feature*********
master-info-repository=TABLE
relay-log-info-repository=TABLE
#relay-log-recovery
#*********** INNODB Specific options ***********
innodb_buffer_pool_size=2048M
transaction-isolation=REPEATABLE-READ
innodb_buffer_pool_instances=8
innodb_file_per_table=1
innodb_data_home_dir=/data/mysql/3306/innodb
innodb_data_file_path=ibdata1:2048M:autoextend
innodb_thread_concurrency=8
innodb_log_buffer_size=16M
innodb_log_file_size=128M
innodb_log_files_in_group=3
innodb_log_group_home_dir=/data/mysql/3306/innodb_log
innodb_flush_log_at_trx_commit=2
innodb_max_dirty_pages_pct=70
innodb_flush_method=O_DIRECT
[mysql]
no-auto-rehash
default-character-set=gbk
prompt = (\u@\h) [\d] \_

(1)3307

vim /data/mysql/3307/my3307.cnf

內(nèi)容如下: 

[client]
port=3307
socket=/data/mysql/3307/mysql.sock
[mysqld]
port=3307
user=mysql
socket=/data/mysql/3307/mysql.sock
pid-file=/data/mysql/3307/mysql.pid
basedir=/usr/local/mysql
datadir=/data/mysql/3307/data
tmpdir=/data/mysql/3307/tmp
open_files_limit=60000
#explicit_defaults_for_timestamp
server-id=3307
lower_case_table_names=1
character-set-server=utf8
#federated
#sql_mode=STRICT_TRANS_TABLES
max_connections=1000
max_connect_errors=100000
interactive_timeout=86400
wait_timeout=86400
sync_binlog=0
back_log=100
default-storage-engine=InnoDB
log_slave_updates=1
#*********** Logs related settings ***********
log-bin=/data/mysql/3307/log/mysql3306-bin
binlog_format=mixed
binlog_cache_size=32m
max_binlog_cache_size=64m
max_binlog_size=512m
long_query_time=1
log_output=FILE
log-error=/data/mysql/3307/log/mysql-error.log
slow_query_log=1
slow_query_log_file=/data/mysql/3307/log/slow_statement.log
#log_queries_not_using_indexes
general_log=0
general_log_file=/data/mysql/3307/log/general_statement.log
#expire-logs-days = 14
binlog_expire_logs_seconds=1728000
relay-log=/data/mysql/3307/log/relay-bin
relay-log-index=/data/mysql/3307/log/relay-bin.index
#****** MySQL Replication New Feature*********
master-info-repository=TABLE
relay-log-info-repository=TABLE
#relay-log-recovery
#*********** INNODB Specific options ***********
innodb_buffer_pool_size=2048M
transaction-isolation=REPEATABLE-READ
innodb_buffer_pool_instances=8
innodb_file_per_table=1
innodb_data_home_dir=/data/mysql/3307/innodb
innodb_data_file_path=ibdata1:2048M:autoextend
innodb_thread_concurrency=8
innodb_log_buffer_size=16M
innodb_log_file_size=128M
innodb_log_files_in_group=3
innodb_log_group_home_dir=/data/mysql/3307/innodb_log
innodb_flush_log_at_trx_commit=2
innodb_max_dirty_pages_pct=70
innodb_flush_method=O_DIRECT
[mysql]
no-auto-rehash
default-character-set=gbk
prompt = (\u@\h) [\d] \_

6、初始化數(shù)據(jù)庫(kù)

(1)3306

mysqld --defaults-file=/data/mysql/3306/my3306.cnf --initialize --user=mysql

(2)3307

mysqld --defaults-file=/data/mysql/3307/my3307.cnf --initialize --user=mysql

錯(cuò)誤如下:

[mysql@mysql80 ~]$ mysqld –defaults-file=/data/mysql/3306/my.cnf –initialize –user=mysql

mysqld: /lib64/libstdc++.so.6: version `CXXABI_1.3.9 not found (required by mysqld)

mysqld: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21 not found (required by mysqld)

mysqld: /lib64/libstdc++.so.6: version `CXXABI_1.3.8 not found (required by mysqld)

mysqld: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20 not found (required by mysqld)

解析辦法:

  原因:由于我們之前升級(jí)了 gcc,也就是 gcc-5.3.0.  但目錄 /lib64/ 下的庫(kù)文件鏈接的是  libstdc++.so.6 依然軟鏈接是低版本  libstdc++.so.6.0.19

[root@mysql80 /]# cd /lib64/

[root@mysql80 lib64]# ls -l | grep libstdc++.so.6

lrwxrwxrwx. 1 root root 19 Jun 19 14:36 libstdc++.so.6 – libstdc++.so.6.0.19

-rwxr-xr-x. 1 root root 991616 Apr 24 22:24 libstdc++.so.6.0.19

進(jìn)入到新安裝的 gcc-5.3.0 的目錄,進(jìn)入 lib64,查看 libstdc++.so.6,軟鏈接的是  libstdc++.so.6.0.21

[root@mysql80 gcc-5.3.0]# cd lib64/

[root@mysql80 lib64]# ls -l | grep libstdc++.so.6

lrwxrwxrwx. 1 root root 19 Jun 25 15:54 libstdc++.so – libstdc++.so.6.0.21

lrwxrwxrwx. 1 root root 19 Jun 25 15:54 libstdc++.so.6 – libstdc++.so.6.0.21

-rwxr-xr-x. 1 root root 11089328 Jun 25 15:54 libstdc++.so.6.0.21

處理:刪除原來的軟鏈接,建立新的軟鏈接:

[root@mysql80 lib64]# rm -rf libstdc++.so.6

[root@mysql80 lib64]# ln -s /usr/local/gcc-5.3.0/lib64/libstdc++.so.6 libstdc++.so.6

[root@mysql80 lib64]# ls -l | grep libstdc++.so.6

lrwxrwxrwx. 1 root root 41 Jun 26 14:48 libstdc++.so.6 – /usr/local/gcc-5.3.0/lib64/libstdc++.so.6

7. 啟動(dòng)服務(wù)

(1)3306

 /mysqld_safe –defaults-file=/data/mysql/3306/my.cnf –user=mysql

 (2)3307

 /mysqld_safe –defaults-file=/data/mysql/3307/my.cnf –user=mysql

8. 登錄數(shù)據(jù)庫(kù)  

  這里以 3306 實(shí)例為例,3307 步驟相同,只需要注意端口號(hào)即可,即大寫的 -P 

(1)查找 root@localhost 的初始密碼,

查看當(dāng)前錯(cuò)誤日志

more /data/mysql/3306/log/mysql-error.log

找到如下行,標(biāo)紅的即是密碼:

[MY-010454] [Server] A temporary password is generated for root@localhost:
?/ihz.ew8SIy

mysql -uroot -p ?/ihz.ew8SIy -P3306 -S /data/mysql/3306/mysql.sock

 (2)登錄

mysql -uroot -p ?/ihz.ew8SIy   -P3306 -S /data/mysql/3306/mysql.sock

   (3)修改密碼

ALTER USER root @ localhost IDENTIFIED WITH sha256_password BY Yxc@3306 PASSWORD EXPIRE INTERVAL 360 DAY;

   (4)查詢數(shù)據(jù)庫(kù)

ysql show databases;

+——————–+

| Database           |

+——————–+

| information_schema |

| mysql              |

| performance_schema |

| sys                |

+——————–+

4 rows in set (0.00 sec)

9. 校驗(yàn)后臺(tái)進(jìn)程

以上是“Mysql 8.0 如何實(shí)現(xiàn)源碼編譯安裝”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-07-27發(fā)表,共計(jì)8177字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請(qǐng)注明出處。
評(píng)論(沒有評(píng)論)
主站蜘蛛池模板: 湾仔区| 彝良县| 六枝特区| 东兰县| 泰安市| 特克斯县| 永登县| 枞阳县| 论坛| 鹤壁市| 梧州市| 张家界市| 浪卡子县| 平武县| 遂川县| 克东县| 彭水| 汝南县| 天祝| 临江市| 青神县| 通道| 乐陵市| 宁强县| 淮阳县| 海丰县| 巩留县| 通化县| 赤壁市| 长垣县| 榆树市| 建湖县| 华容县| 安义县| 盖州市| 江城| 安丘市| 枞阳县| 噶尔县| 南岸区| 顺平县|