1、下载二进制包
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz
2、解压及初始化配置
#解压二进制包
tar -zxvf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz
#移动到/usr/local目录下重命名
mv mysql-5.7.23-linux-glibc2.12-x86_64 /usr/local/
cd /usr/local && mv mysql-5.7.23-linux-glibc2.12-x86_64 mysql5.7
#删除不需要的文件及目录
cd mysql5.7/
rm -rf docs man CONFING README
#检查环境及用户(如不要需要添加)
grep mysql /etc/passwd
which mysql
注:添加环境变量
vim /etc/profile
PATH=$PATH:/usr/local/ mysql5.7/bin
添加用户
useradd -g mysql -s /sbin/nologin -M mysql
#新建数据、配置及日志目录,并授权给mysql用户与mysql组
mkdir /data/app/mysql5.7/{data,conf,logs}
chown -R mysql.mysql /data/app/mysql5.7
#初始化(端口不重就可以)
cat /data/app/mysql5.7/conf/13306.cnf
[mysqld]
user = mysql
port = 13306
socket = /data/app/mysql5.7/mysql.sock
basedir = /usr/local/mysql5.7
datadir = /data/app/mysql5.7/data
skip-name-resolve
symbolic-links=0
pid-file = /data/app/mysql5.7/mysqld.pid
log-error=/data/app/mysql5.7/logs/mysqld.log
server_id=13306
[mysqld_safe]
log-error=/data/app/mysql5.7/logs/mysqld.log
cd /usr/local/mysql5.7/bin
./ mysqld --defaults-file=/data/app/mysql5.7/conf/13306.cnf --initialize-insecure --basedir=/usr/local/mysql5.7/ --datadir=/data/app/mysql5.7/data
注:--initialize-insecure:初始化root密码为空
3、编写配置文件,启动mysql服务
#配置文件
cat /data/app/mysql5.7/conf/my.cnf
[client]
port = 13306
socket = /data/app/mysql5.7/mysql.sock
default_character_set = utf8mb4
[mysql]
auto-rehash
[mysqld]
character_set_server = utf8mb4
user = mysql
port = 13306
socket = /data/app/mysql5.7/mysql.sock
basedir = /usr/local/mysql5.7
datadir = /data/app/mysql5.7/data
skip-name-resolve
open_files_limit = 1024
back_log = 600
max_connections = 1000
max_connect_errors = 3000
explicit_defaults_for_timestamp = true
external-locking = FALSE
max_allowed_packet = 8M
sort_buffer_size = 1M
join_buffer_size = 1M
thread_cache_size = 100
query_cache_size = 2M
query_cache_limit = 1M
query_cache_min_res_unit = 2k
thread_stack = 192K
tmp_table_size = 2M
max_heap_table_size = 2M
long_query_time = 1
log-error = /data/app/mysql5.7/logs/mysqld.log
#log-slow-queries = /data/app/mysql5.7/logs/slow.log
pid-file = /data/app/mysql5.7/mysql.pid
log-bin = /data/app/mysql5.7/logs/mysql-bin
relay-log = /data/app/mysql5.7/logs/relay-bin
relay-log-info-file = /data/app/mysql5.7/relay-log.info
binlog_cache_size = 1M
max_binlog_cache_size = 1M
max_binlog_size = 2M
expire_logs_days = 7
key_buffer_size = 16M
read_buffer_size = 1M
read_rnd_buffer_size = 1M
bulk_insert_buffer_size = 1M
lower_case_table_names = 1
slave-skip-errors = 1032,1062
replicate-ignore-db=mysql
server-id = 13306
innodb_buffer_pool_size = 32M
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 2M
innodb_log_file_size = 4M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
innodb_file_per_table = 0
slow_query_log = 1
[mysqldump]
quick
max_allowed_packet = 2M
[mysqld_safe]
log-error=/data/app/mysql5.7/logs/mysqld.log
pid-file=/data/app/mysql5.7/mysqld.pid
#启动文件
cat /usr/local/mysql5.7/mysqld
#!/bin/sh
################################################
#this scripts is created by lrj at 2020-04-06
#starting mysqld
################################################
#init
cnf_dir=/data/app/mysql5.7/conf
mysql_user="root"
mysql_pwd="12345678"
CmdPath="/usr/local/mysql5.7/bin"
mysql_sock="/data/app/mysql5.7/mysql.sock"
#startup function
function_start_mysql()
{
if [ ! -e "$mysql_sock" ];then
printf "Starting MySQL...\n"
/bin/sh ${CmdPath}/mysqld_safe --defaults-file=${cnf_dir}/my.cnf 2>&1 > /dev/null &
else
printf "MySQL is running...\n"
exit
fi
}
#stop function
function_stop_mysql()
{
if [ ! -e "$mysql_sock" ];then
printf "MySQL is stopped...\n"
exit
else
printf "Stoping MySQL...\n"
${CmdPath}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S ${mysql_sock} shutdown
fi
}
#restart function
function_restart_mysql()
{
printf "Restarting MySQL...\n"
function_stop_mysql
sleep 2
function_start_mysql
}
case $1 in
start)
function_start_mysql
;;
stop)
function_stop_mysql
;;
restart)
function_restart_mysql
;;
*)
printf "Usage: /usr/local/mysql5.7/mysqld {start|stop|restart}\n"
esac
#启动mysql
cd /usr/local/mysql5.7 && ./mysqld start
检查服务是否启动
netstat -tlpn|grep 13306
注:如服务没启动成功,可以检查“log-error = /data/app/mysql5.7/logs/mysqld.log”里的ERROR信息,修改配置文件,再启动。
4、设置mysql数据库root密码,添加用户
mysql -uroot -P 13306 -S /data/app/mysql5.7/mysql.sock
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.23-log MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
MySQL [(none)]> use mysql;
MySQL [mysql]> update mysql.user set authentication_string=password('12345678') where user='root' and Host ='localhost';
Query OK, 1 row affected, 1 warning (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 1
MySQL [mysql]> flush privileges;
Query OK, 0 rows affected (0.01 sec)
MySQL [mysql]> select host,user,authentication_string from user;
+-----------+---------------+-------------------------------------------+
| host | user | authentication_string |
+-----------+---------------+-------------------------------------------+
| localhost | root | *84AAC12F54AB666ECFC2A83C676908C8BBC381B1 |
| localhost | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
+-----------+---------------+-------------------------------------------+
MySQL [mysql]> grant all privileges on *.* to 'root'@'%' identified by "12345678";
Query OK, 0 rows affected, 1 warning (0.00 sec)
MySQL [mysql]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
MySQL [mysql]> select host,user,authentication_string from user;
+-----------+---------------+-------------------------------------------+
| host | user | authentication_string |
+-----------+---------------+-------------------------------------------+
| localhost | root | *84AAC12F54AB666ECFC2A83C676908C8BBC381B1 |
| localhost | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| % | root | *84AAC12F54AB666ECFC2A83C676908C8BBC381B1 |
+-----------+---------------+-------------------------------------------+
4 rows in set (0.00 sec)
MySQL [mysql]> quit
Bye