MySQL安装部署

原作者连接:https://github.com/Hackeruncle/MySQL/blob/master/MySQL%205.7.11%20Install.txt

致敬J哥

1.解压及创建目录

[root@hadoop ~]# cd /usr/local/

[root@hadoop local]# tar -xvf /home/hadoop/software/mysql-5.7.26-el7-x86_64.tar.gz -C /usr/local/

[root@hadoop local]# mv mysql-5.7.26-el7-x86_64 mysql

[root@hadoop local]# mkdir mysql/arch mysql/data mysql/tmp

2.创建my.cnf(见文件)

[root@hadoop local]# cp /etc/my.cnf my.cnf.bak

[root@hadoop local]# vi /etc/my.cnf

# 先清空文件

[client]

port            = 3306

socket          = /usr/local/mysql/data/mysql.sock

default-character-set=utf8mb4

[mysqld]

port            = 3306

socket          = /usr/local/mysql/data/mysql.sock

skip-slave-start

skip-external-locking

key_buffer_size = 256M

sort_buffer_size = 2M

read_buffer_size = 2M

read_rnd_buffer_size = 4M

query_cache_size= 32M

max_allowed_packet = 16M

myisam_sort_buffer_size=128M

tmp_table_size=32M

table_open_cache = 512

thread_cache_size = 8

wait_timeout = 86400

interactive_timeout = 86400

max_connections = 600

# Try number of CPU's*2 for thread_concurrency

#thread_concurrency = 32

#isolation level and default engine

default-storage-engine = INNODB

transaction-isolation = READ-COMMITTED

server-id  = 1739

basedir    = /usr/local/mysql

datadir    = /usr/local/mysql/data

pid-file    = /usr/local/mysql/data/hostname.pid

#open performance schema

log-warnings

sysdate-is-now

binlog_format = ROW

log_bin_trust_function_creators=1

log-error  = /usr/local/mysql/data/hostname.err

log-bin = /usr/local/mysql/arch/mysql-bin

expire_logs_days = 7

innodb_write_io_threads=16

relay-log  = /usr/local/mysql/relay_log/relay-log

relay-log-index = /usr/local/mysql/relay_log/relay-log.index

relay_log_info_file= /usr/local/mysql/relay_log/relay-log.info

log_slave_updates=1

gtid_mode=OFF

enforce_gtid_consistency=OFF

# slave

slave-parallel-type=LOGICAL_CLOCK

slave-parallel-workers=4

master_info_repository=TABLE

relay_log_info_repository=TABLE

relay_log_recovery=ON

#other logs

#general_log =1

#general_log_file  = /usr/local/mysql/data/general_log.err

#slow_query_log=1

#slow_query_log_file=/usr/local/mysql/data/slow_log.err

#for replication slave

sync_binlog = 500

#for innodb options

innodb_data_home_dir = /usr/local/mysql/data/

innodb_data_file_path = ibdata1:1G;ibdata2:1G:autoextend

innodb_log_group_home_dir = /usr/local/mysql/arch

innodb_log_files_in_group = 4

innodb_log_file_size = 1G

innodb_log_buffer_size = 200M

#根据生产需要,调整pool size

innodb_buffer_pool_size = 2G

#innodb_additional_mem_pool_size = 50M #deprecated in 5.6

tmpdir = /usr/local/mysql/tmp

innodb_lock_wait_timeout = 1000

#innodb_thread_concurrency = 0

innodb_flush_log_at_trx_commit = 2

innodb_locks_unsafe_for_binlog=1

#innodb io features: add for mysql5.5.8

performance_schema

innodb_read_io_threads=4

innodb-write-io-threads=4

innodb-io-capacity=200

#purge threads change default(0) to 1 for purge

innodb_purge_threads=1

innodb_use_native_aio=on

#case-sensitive file names and separate tablespace

innodb_file_per_table = 1

lower_case_table_names=1

[mysqldump]

quick

max_allowed_packet = 128M

[mysql]

no-auto-rehash

default-character-set=utf8mb4

[mysqlhotcopy]

interactive-timeout

[myisamchk]

key_buffer_size = 256M

sort_buffer_size = 256M

read_buffer = 2M

write_buffer = 2M

3.创建用户组及用户

[root@hadoop local]# groupadd -g 101 mysql

[root@hadoop local]# useradd -u 514 -g mysql -G root -d /usr/local/mysql mysqladmin

useradd:警告:此主目录已经存在。

不从 skel 目录里向其中复制任何文件。

[root@hadoop local]# id mysqladmin

uid=514(mysqladmin) gid=101(mysql) 组=101(mysql),0(root)

## 一般不需要设置mysqladmin的密码,直接从root或者LDAP用户sudo切换

#[root@hadoop local]# passwd mysqladmin

Changing password for user mysqladmin.

New UNIX password:

BAD PASSWORD: it is too simplistic/systematic

Retype new UNIX password:

passwd: all authentication tokens updated successfully.

## if user mysqladmin is existing,please execute the following command of usermod.

#[root@hadoop local]# usermod -u 514 -g mysql -G root -d /usr/local/mysql mysqladmin

4.copy 环境变量配置文件至mysqladmin用户的home目录中,为了以下步骤配置个人环境变量

[root@hadoop local]# cp /etc/skel/.* /usr/local/mysql  ###important

5.配置环境变量

[root@hadoop local]# vi mysql/.bashrc

# .bashrc

# Source global definitions

if [ -f /etc/bashrc ]; then

        . /etc/bashrc

fi

# Uncomment the following line if you don't like systemctl's auto-paging feature:

# export SYSTEMD_PAGER=

# User specific aliases and functions

export MYSQL_BASE=/usr/local/mysql

export PATH=${MYSQL_BASE}/bin:$PATH

unset USERNAME

#stty erase ^H

set umask to 022

umask 022

PS1=`uname -n`":"'$USER'":"'$PWD'":>"; export PS1

## end

6.赋权限和用户组,切换用户mysqladmin,安装

[root@hadoop local]# chown mysqladmin:mysql /etc/my.cnf

[root@hadoop local]# chmod  640 /etc/my.cnf

[root@hadoop local]# chown -R mysqladmin:mysql /usr/local/mysql

[root@hadoop local]# chmod -R 755 /usr/local/mysql

7.配置服务及开机自启动

[root@hadoop local]# cd /usr/local/mysql

#将服务文件拷贝到init.d下,并重命名为mysql

[root@hadoop mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysql

#赋予可执行权限

[root@hadoop mysql]# chmod +x /etc/rc.d/init.d/mysql

#删除服务

[root@hadoop mysql]# chkconfig --del mysql

#添加服务

[root@hadoop mysql]# chkconfig --add mysql

[root@hadoop mysql]# chkconfig --level 345 mysql on

[root@hadoop mysql]# vi /etc/rc.local

#!/bin/sh

#

# This script will be executed *after* all the other init scripts.

# You can put your own initialization stuff in here if you don't

# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local

su - mysqladmin -c "/etc/init.d/mysql start --federated"

"/etc/rc.local" 9L, 278C written

8.安装libaio及安装mysql的初始db

[root@hadoop mysql]# yum -y install libaio

[root@hadoop mysql]# sudo su - mysqladmin

hadoop:mysqladmin:/usr/local/mysql:>bin/mysqld \

--defaults-file=/etc/my.cnf \

--user=mysqladmin \

--basedir=/usr/local/mysql/ \

--datadir=/usr/local/mysql/data/ \

--initialize

在初始化时如果加上 –initial-insecure,则会创建空密码的 root@localhost 账号,否则会创建带密码的 root@localhost 账号,密码直接写在 log-error 日志文件中

(在5.6版本中是放在 ~/.mysql_secret 文件里,更加隐蔽,不熟悉的话可能会无所适从)

9.查看临时密码

hadoop:mysqladmin:/usr/local/mysql:>cd /usr/local/mysql/data

hadoop:mysqladmin:/usr/local/mysql/data:>cat hostname.err |grep password

2020-06-04T11:03:30.466803Z 1 [Note] A temporary password is generated for root@localhost: <7pYz++t#p:5


10.启动

hadoop:mysqladmin:/usr/local/mysql/data:>/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &

11.登录及修改用户密码

hadoop:mysqladmin:/usr/local/mysql/bin:>cd /usr/local/mysql/bin

hadoop:mysqladmin:/usr/local/mysql/bin:>mysql -uroot -p'<7pYz++t#p:5'

mysql: [Warning] Using a password on the command line interface can be insecure.

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 2

Server version: 5.7.26-log

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>


mysql> alter user root@localhost identified by 'root';

Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root';

Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> exit;

Bye

12.重启

hadoop:mysqladmin:/usr/local/mysql/bin:>service mysql restart

Shutting down MySQL..2020-06-04T11:14:51.878703Z mysqld_safe mysqld from pid file /usr/local/mysql/data/hostname.pid ended

SUCCESS!

Starting MySQL.. SUCCESS!

[1]+  完成                  /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf(工作目录:~/data)

(当前工作目录:~/bin)

hadoop:mysqladmin:/usr/local/mysql/bin:>mysql -uroot -proot

mysql: [Warning] Using a password on the command line interface can be insecure.

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 2

Server version: 5.7.26-log MySQL Community Server (GPL)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

你可能感兴趣的:(MySQL安装部署)