Linux服務器搭建系列—源碼安裝mysql5.7

1.卸載舊版本的mysql

1.1使用命令查詢舊版本

 rpm -qa | grep mysql

1.2卸載

rpm -e <安裝包名稱>   #普通刪除
rpm -e --nodeps <安裝包名稱>   #強力刪除模式(包含依賴)

2.下載源碼及準備工作

2.1安裝編譯源碼需要的依賴包 

yum -y install gcc gcc-c++ ncurses-devel openssl* make cmake perl autoconf automake zlib libxml libtool libgcrypt bison bison-devel

2.2下載源碼

下載源碼到/usr/local/src:

cd /usr/local/src
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.28.tar.gz

解壓到/usr/local

tar -zxvf /usr/local/src/mysql-boost-5.7.28.tar.gz -C /usr/local/src

3.編譯源碼

進入源碼目錄/usr/local/src/mysql-5.7.28,執行cmake編譯命令

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DDEFAULT_CHARSET=utf8 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_TCP_PORT=3306 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DDOWNLOAD_BOOST=1 \
-DWITH_READLINE=1 \
-DWITH_BOOST=/opt/mysql-5.7.23/boost

編譯並安裝,此時會安裝到/usr/local/mysql

make && make install

添加用戶組

groupadd mysql

添加用戶, -r代表此用戶是系統用戶不可用來登錄系統,-g mysql指定用戶所屬用戶組爲mysql用戶組,最後的mysql爲用戶名

useradd -r -g mysql mysql

授權/ussr/locacla/mysql所屬的用戶和用戶組

chown -r mysql:mysql /usr/local/mysql

4.初始化及配置

4.1初始化

/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

初始化時,會生成root用戶的默認密碼如:...root@localhost: 2wp?fPp33/Hw,其中冒號後面就是密碼

4.2配置環境變量

vim /etc/profile

#在/etc/profile文件末尾添加
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin

source /etc/profile  #重新加載/etc/profile配置文件

4.3將啓動腳本做成服務

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

chkconfig mysql on    #設置開機啓動

4.4開放端口號

firewall-cmd --zone=public --add-port=3306/tcp --permanent  #開放3306端口號

firewall-cmd --reload  #重新加載防火牆

firewall-cmd --list-all #查看防火牆端口號開放狀態

4.5修改配置文件

vim /etc/my.cnf

在文件中添加如下內容 

[client]
port=3306
socket=/data/mysql/tmp/mysql.sock
default-character-set=utf8mb4

[mysqld]
# basic settings #
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql/data
tmpdir=/data/mysql/tmp
socket=/data/mysql/tmp/mysql.sock
pid-file=/data/mysql/tmp/mysql.pid
plugin_dir=/usr/local/mysql/lib/plugin
character-set-server=utf8mb4
lower_case_table_names=1
transaction_isolation=READ-COMMITTED
default-storage-engine=InnoDB
autocommit=1
event_scheduler=1
skip-external-locking
sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER


# connection settings #
interactive_timeout=1800
wait_timeout=1800
lock_wait_timeout=1800
skip_name_resolve=1
max_connections=512
max_user_connections=256
max_connect_errors=10000

# log file #
server-id=101
log-error=error.log
slow_query_log=1
slow_query_log_file=slow.log
long_query_time=2
log_queries_not_using_indexes=1
log_slow_admin_statements=1
log_slow_slave_statements=1
log_throttle_queries_not_using_indexes=10
expire_logs_days=90
min_examined_row_limit=100
log-bin-trust-function-creators=1
log-slave-updates=1

# bin log #
log-bin=mysql-bin
log-bin-index=mysql-bin.index
binlog_format=row
sync_binlog=1
binlog_cache_size=8M
max_binlog_cache_size=2048M
max_binlog_size=1024M
binlog-rows-query-log-events=1

# plugin settings #
plugin_load=validate_password.so

# password plugin settings #
#validate_password_policy=STRONG
#validate-password=FORCE_PLUS_PERMANENT
validate-password=OFF

[mysql-5.7]
# other settings #
binlog_gtid_simple_recovery=1
log_timestamps=system
show_compatibility_56=on

[mysqldump]
quick

[mysql]
default-character-set=utf8mb4

4.6啓動/關閉/重啓相關命令

systemctl status mysql #查看mysql服務狀態
systemctl start mysql #開啓mysql服務
systemctl stop mysql #關閉mysql服務
systemctl restart mysql #重啓mysql服務

4.7修改默認密碼

第一種,確認mysql服務啓動後,使用mysql客戶端並用root用戶登錄進去之後再修改;

mysql -u root -p
mysql> set password = password('你想要的密碼');
Query OK, 0 rows affected (0.01 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

mysql> commit;
Query OK, 0 rows affected (0.00 sec)

第二種,使用mysqladmin進行修改

mysqladmin -u root -p password 你的密碼

第三種,使用安全化設置(mysql_secure_installation)進行修改(生產環境推薦使用,可以禁用空密碼、密碼複雜度級別設定、刪除空用戶名、刪除root的遠程登錄)

mysql_secure_installation

根據系統提示,一步步輸入yes,操作完成後,請務必記住自己配置的密碼,如下圖:

è¿éåå¾çæè¿°

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