Linux筆記-centos7源碼安裝Mysql5.6(圖解詳細)

關閉centos7防火牆

查看防火牆命令及關閉防火牆及永久關閉防火牆

systemctl status firewalld.service
systemctl stop firewalld.service
systemctl disable firewalld.service

Linux上創建一個mysql的用戶名和組

groupadd mysql
useradd -d /home/mysql -g mysql -m mysql

修改linux中mysql用戶密碼:

passwd mysql

查看下linux中mysql用戶的相關id

id mysql

切換到mysql用戶並配置環境變量。這裏我們把mysql安裝到/u01/my3306/bin下面

su -mysql
vim .bash_profile

添加環境變量內容如下:

加一個/u01/mysql3306/bin

重新加載shell,讓其立即生效

source .bash_profile

下面是創建一些目錄,用於放數據文件、日誌文件、service層日誌、運行時的pid、臨時文件

這裏要先切換到root用戶

mkdir -p /u01/mysql3306/data
mkdir -p /u01/mysql3306/log/iblog
mkdir -p /u01/mysql3306/log/binlog
mkdir -p /u01/mysql3306/run
mkdir -p /u01/mysql3306/tmp

授予linux用戶組mysql和用戶mysql相關權限

chown -R mysql:mysql /u01/mysql3306
chown -R 755 /u01/mysql3306

 

下載好源碼後

使用rz把文件傳到/u01目錄下:

解壓然後進入:

tar -zxvf mysql-5.6.35.tar.gz
cd mysql-5.6.35

安裝cmake相關軟件

yum install -y  cmake gcc gcc-c++ ncurses-devel bison zlib libxml openssl openssl-devel

隨後使用cmake:

cmake \
-DCMAKE_INSTALL_PREFIX=/u01/mysql3306 \
-DINSTALL_DATADIR=/u01/mysql3306/data  \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_SSL=yes \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-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=/u01/mysql3306/run/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DSYSCONFDIR=/etc \
-DWITH_READLINE=on

如果提示SSL找不到的話如下錯誤:

Cannot find appropriate system libraries for SSL

要程序下載openssl二進制安裝包。下載好後,同樣使用rz放到linux上,然後tar,即可

執行如下命令:

./config --prefix=/usr/local/openssl -fPIC no-gost no-shared no-zlib
make depend
./config -t
make && make install

注意不要安裝新版本,不然mysql5.6會編譯不通過。我這裏用的是1.0.1u

完成了後替換一起的openssl

cd /usr/local
ldd /usr/local/openssl/bin/openssl

修改root環境變量並讓其生效

vim /root/.bash_profile
source /root/.bash_profile

查看下:

which openssl

如果還是/bin/openssl將其刪掉就可以了。

隨後將CmakeCache.txt刪掉

rm -f CMakeCache.txt

然後將命令改爲:

cmake \
-DCMAKE_INSTALL_PREFIX=/u01/mysql3306 \
-DINSTALL_DATADIR=/u01/mysql3306/data  \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_SSL=yes \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-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=/u01/mysql3306/run/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DSYSCONFDIR=/etc \
-DWITH_READLINE=on \
-DOPENSSL_ROOT_DIR=/usr/local/openssl \
-DOPENSSL_LIBRARIES=/usr/local/openssl/lib 

隨後安裝,並將編譯好的文件其移動到相關目錄

make && make install

如下:

爲文件夾授予權限及添加my.conf對mysql進行初始化:

chown -R mysql:mysql /u01/mysql3306

把文件上傳到/u01/mysql3306,文件名爲my.cnf

內容如下:

[client]
port=3306
socket=/u01/mysql3306/mysql.sock

[mysql]
pid_file=/u01/mysql3306/run/mysqld.pid

[mysqld]
autocommit=1
general_log=off
explicit_defaults_for_timestamp=true

# system
basedir=/u01/mysql3306
datadir=/u01/mysql3306/data
max_allowed_packet=1g
max_connections=3000
max_user_connections=2800
open_files_limit=65535
pid_file=/u01/mysql3306/run/mysqld.pid
port=3306
server_id=101
skip_name_resolve=ON
socket=/u01/mysql3306/run/mysql.sock
tmpdir=/u01/mysql3306/tmp

#binlog
log_bin=/u01/mysql3306/log/binlog/binlog
binlog_cache_size=32768
binlog_format=row
expire_logs_days=7
log_slave_updates=ON
max_binlog_cache_size=2147483648
max_binlog_size=524288000
sync_binlog=100

#logging
log_error=/u01/mysql3306/log/error.log
slow_query_log_file=/u01/mysql3306/log/slow.log
log_queries_not_using_indexes=0
slow_query_log=1
log_slave_updates=ON
log_slow_admin_statements=1
long_query_time=1

#relay
relay_log=/u01/mysql3306/log/relaylog
relay_log_index=/u01/mysql3306/log/relay.index
relay_log_info_file=/u01/mysql3306/log/relay-log.info

#slave
slave_load_tmpdir=/u01/mysql3306/tmp
slave_skip_errors=OFF


#innodb
innodb_data_home_dir=/u01/mysql3306/log/iblog
innodb_log_group_home_dir=/u01/mysql3306/log/iblog
innodb_adaptive_flushing=ON
innodb_adaptive_hash_index=ON
innodb_autoinc_lock_mode=1
innodb_buffer_pool_instances=8

#default
innodb_change_buffering=inserts
innodb_checksums=ON
innodb_buffer_pool_size= 128M
innodb_data_file_path=ibdata1:32M;ibdata2:16M:autoextend
innodb_doublewrite=ON
innodb_file_format=Barracuda
innodb_file_per_table=ON
innodb_flush_log_at_trx_commit=1
innodb_flush_method=O_DIRECT
innodb_io_capacity=1000
innodb_lock_wait_timeout=10
innodb_log_buffer_size=67108864
innodb_log_file_size=1048576000
innodb_log_files_in_group=4
innodb_max_dirty_pages_pct=60
innodb_open_files=60000
innodb_purge_threads=1
innodb_read_io_threads=4
innodb_stats_on_metadata=OFF
innodb_support_xa=ON
innodb_use_native_aio=OFF
innodb_write_io_threads=10

[mysqld_safe]
datadir=/u01/mysql3306/data

隨後初始化mysql

./scripts/mysql_install_db --defaults-file=/u01/mysql3306/my.cnf --datadir=/u01/mysql3306/data -user=mysql

如果有錯誤,可以看日誌看錯誤。下面啓動mysql

給linux下的mysql組權限,並切換到mysql用戶,然後啓動:

chown -R mysql:mysql /u01/mysql3306
su mysql
mysql
或者
mysql -hlocalhost -uroot

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章