MySQL5.7二进制安装配置

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

 


猜你喜欢

转载自blog.51cto.com/9625010/2485409