一、下载并解压

1) 创建目录

mkdir -p /data/softWare/mysql      # mysql安装文件目录 
mkdir -p /data/mysql_3306Data/    # mysql数据库目录 
mkdir -p /data/mysql_3306Data/ssl    # mysql密钥目录
mkdir -p /var/run/mysqld/     # socket文件目录

2)下载

      官网地址:

https://dev.mysql.com/downloads/mysql/5.6.html

      或 

wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz​

      或 

从本地yum源下载

3)解压

cd /data/softWare/mysql
tar -zxvf /data/download/mysql/tar_install/mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz.1 ./
mv mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz.1 mysql-5.7

 

二、删除mysql历史包

rpm -qa | grep mysql

如果有包存在,使用 rpm -e  --nodeps 包名  命令依次删除;如:

    mysql-5.1.47-4.el6.x86_64

rpm -e --nodeps mysql-5.1.47-4.el6.x86_64 

 

三、添加mysql用户

groupadd mysql     #创建mysql组
useradd -r -s /sbin/nologin -g mysql mysql -d /data/softWare/mysql/mysql-5.7          #添加mysql用户使其shell模式为nologin(禁止登录)
chown -R mysql:mysql /data/softWare/mysql/mysql-5.7
chown -R mysql:mysql /data/mysql_3306Data

 

四、初始化安装

 1) 提前安装numactl组件

yum -y install numactl

 2) 初始化

bin/mysqld --initialize --user=mysql --basedir=/data/softWare/mysql/mysql-5.7 --datadir=/data/mysql_3306Data

这一步就将最后的密码记住,后面登陆mysql时使用,最好使用  echo “passwd of tmp” > passwdTmp  命令记下来

 3) 生成密钥文件

bin/mysql_ssl_rsa_setup --datadir=/data/mysql_3306Data/ssl

 

五、修改配置文件

 1) my.cnf 文件配置

cd support-files

发现没有my-default.cnf文件,然后手动创建:

vim /etc/my.cnf (下面的文件,按照自己的配置修改对应参数即可)
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock             #登陆MySQL客户端读取的socket文件

[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 
basedir = /data/softWare/mysql/mysql-5.7       #MySQL的home路径
datadir = /data/mysql_3306Data/               #MySQL的数据存放目录
port = 3306
socket = /var/run/mysqld/mysqld.sock          #mysqld启动时读取的socket文件
character-set-server=utf8

back_log = 300
max_connections = 3000
max_connect_errors = 50
table_open_cache = 4096
max_allowed_packet = 32M
#binlog_cache_size = 4M

max_heap_table_size = 128M
read_rnd_buffer_size = 16M
sort_buffer_size = 16M
join_buffer_size = 16M
thread_cache_size = 16
query_cache_size = 128M
query_cache_limit = 4M
ft_min_word_len = 8

thread_stack = 512K
transaction_isolation = REPEATABLE-READ
tmp_table_size = 128M
#log-bin=mysql-bin
long_query_time = 6

server_id=1

innodb_buffer_pool_size = 1G
innodb_thread_concurrency = 16
innodb_log_buffer_size = 16M

innodb_log_file_size = 512M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
innodb_file_per_table = on

[mysqldump]
quick

max_allowed_packet = 32M

[mysql]
no-auto-rehash
default-character-set=utf8
safe-updates

[myisamchk]
key_buffer = 16M
sort_buffer_size = 16M
read_buffer = 8M
write_buffer = 8M

[mysqlhotcopy]
interactive-timeout

[mysqld_safe]
open-files-limit = 8192

 2) mysqld 文件配置

cp mysql.server /etc/init.d/mysqld
vim /etc/init.d/mysqld

这里的配置与mysql相同,我修改了basedir, datadir, lockdir, lock_file_path 四个参数,

mysqld_pid_file_path 参数值必须为空,启动MySQL时会自动分配值写入pid文件

 

六、启动MySQL

 1)启动前检测

bin/mysqld_safe --user=mysql & # 后台运行,检测

 2)检查mysqld服务状态,确保mysql服务处在running...

chown -R mysql:mysql /var/run/mysqld
service mysqld start  或  /etc/init.d/mysqld start

 3) 登陆并修改密码

cat passwdTmp    #查看临时密码
bin/mysql -uroot -p
mysql> alter user 'root'@'localhost' identified by 'youpassword';   # 修改密码
或  mysql> set password=password("youpassword");
mysql> flush privileges;   # 最后刷新权限

 如果 bin/mysql -uroot -p 无法启动时,修改/etc/my.cnf文件,在[mysqld]下面添加“skip-grant-tables” 跳过登陆验证,最后在修改密码后,注销掉“skip-grant-tables”参数。

 

七、修改MySQL配置

 1) 创建软链接,使mysql全局使用

ln -s /data/softWare/mysql/mysql-5.7/bin/mysql /usr/bin/mysql5.7

 2) 配置mysql中自启动

chmod 755 /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig --level 345 mysqld on

chkconfig --list mysqld     # 查看mysqld启动状态

 3) 配置远程可访问

   3-1) 退出安全模式
mysql> show variables like 'sql_safe%';   # 1. 查看当前状态
  
+------------------+-------+ | Variable_name | Value | +------------------+-------+ | sql_safe_updates | OFF | +------------------+-------+
set sql_safe_updates=0;  或  set sql_safe_updates=off;    #2. 修改状态
  3.2) 配置远程可访问
mysql>use mysql;

mysql>update user set host='%' where user='root';

mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'yourpasswd' WITH GRANT option;    # 配置你的远程登陆密码  *.* 为数据库名.表名; %为ip或域名

mysql>FLUSH PRIVILEGES; 

mysql>quit
 # service mysql restart; # 重启后即可生效

 4) 配置多端口

        4.1)创建数据库文件 和 my3307.cnf, mysqld3307 配置文件

           4.1-1)    mkdir -p /data/mysql_3306Data/

           4.1-2)    cp /etc/my3306.cnf /etc/my3307.cnf

               1.  修改my.cnf为my3306.cnf, 在/etc目录下修改my.cnf 为my3306.cnf,同时更改其中的socket配置为:/var/run/mysqld/mysqld3306.sock,然后以此来修改/var/run/mysqld 中的文件名字

               2. 拷贝my3306.cnf文件为my3307.cnf,然后修改其中 port,datadir,socket 等配置

           4.1-3)  cp /etc/init.d/mysql3306 /etc/init.d/mysql3307

               1.  修改mysqld为mysql3306

               2.  拷贝mysql3306为mysql3307,然后修改其中 datadir 等配置

 

          4.2)启动

             4.2-1) 初始化

    bin/mysqld --initialize --user=mysql --basedir=/data/softWare/mysql/mysql-5.7 --datadir=/data/mysql_3307Data     # 这一步要记住临时密码
    bin/mysql_ssl_rsa_setup --datadir=/data/mysql_3306Data/ssl     # 生成密钥文件   

            4.2-2)  启动前检测:

   bin/mysqld_safe --defaults-extra-file=/etc/my3307.cnf --user=mysql &

            4.2-3)  启动

    mysql -uroot -P 3307 -h 127.0.0.1 -p
      mysql> alter user 'root'@'localhost' identified by 'youpassword';
      mysql> flush privileges;
      mysql> quit; 
      4.2-4) 使用新密码登陆并配置可远程访问
mysql -uroot -P 3307 -h 127.0.0.1 -p
  mysql> set sql_safe_updates=0;
  mysql> use mysql;
  mysql> update user set host='%' where user='root';
  mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'yourpasswd' WITH GRANT option;    # 配置你的远程登陆密码  *.* 为数据库名.表名; %为ip或域名
  mysql> FLUSH PRIVILEGES; 
  mysql> quit
# service mysql restart; # 重启后即可生效

 # 此配置在本地登陆3307端口需指定 -h 127.0.0.1