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,操作完成後,請務必記住自己配置的密碼,如下圖: