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,操作完成后,请务必记住自己配置的密码,如下图: