第一步:下载安装包
mysql官网下载:https://dev.mysql.com/downloads/mysql/5.7.html#downloads
也可以进入linux后用命令下载
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz
第二步:服务器环境配置
版本:mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz
检测系统是否自带安装 MySQL:
rpm -qa | grep mysql
如有,类似
mysql-libs-5.1.52-1.el6_0.1.x86_64
那可以进行卸载:
rpm -e mysql-libs-5.1.52-1.el6_0.1.x86_64 // 普通删除模式
rpm -e --nodeps mysql-libs-5.1.52-1.el6_0.1.x86_64 // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除
检查否存在 mariadb 数据库,如有,卸载之,卸载同上
rpm -qa | grep mariadb
如有,类似
mariadb-libs-5.5.56-2.el7.x86_64
卸载
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
用WinSCP 5.14.4工具将下载的mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz上传到linux服务器的/opt/mysql目录下面
第三步:安装
1.进入安装包所在目录,解压文件
cd /opt/mysql
tar -zxvf mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz
2.重命名
mv mysql-5.7.25-linux-glibc2.12-x86_64 mysql-5.7.25
3.添加系统mysql组和mysql用户
检查mysql组和用户是否存在,如无创建
cat /etc/group | grep mysql
#类似
mysql:x:490:
cat /etc/passwd | grep mysql
#类似
mysql:x:496:490::/home/mysql:/bin/bash
以上为存在的情况,如无,执行添加命令:
--创建组
groupadd mysql
--创建用户
useradd -m -g mysql mysql
--设置用户密码
passwd mysql#回车输入两次密码
--在root用户下给用户授权
chmod 775 -R mysql
--将用户添加进工作组
usermod -r -g mysql mysql
#usermod -r参数表示mysql用户是系统用户,不可用于登录系统
4.安装数据库
创建data目录
cd mysql-5.7.25
mkdir data
将/opt/mysql/mysql-5.7.25的所有者及所属组改为mysql
chown -R mysql.mysql /opt/mysql/mysql-5.7.25
修改/opt/mysql/mysql-5.7.25/support-files/my-default.cnf
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
lower_case_table_names = 1
basedir = /opt/mysql/mysql-5.6.45
datadir = /opt/mysql/mysql-5.6.45/data
port = 3306
socket = /tmp/mysql.sock
character-set-server=utf8
log-error = /opt/mysql/mysql-5.6.45/logs/mysqld.log
pid-file = /opt/mysql/mysql-5.6.45/mysqld.pid
innodb_large_prefix=on
innodb_file_format = BARRACUDA
default-time_zone = '+8:00'
key_buffer_size = 512M
max_allowed_packet = 1024M
拷贝,如果提示是否覆盖,y
cp support-files/my_default.cnf /etc/my.cnf
安装autoconf库
yum -y install autoconf
安装perl跟perl-devel
yum -y install perl perl-devel
安装libaio
yum install -y libaio
初始化 mysql数据库
cd /opt/mysql/mysql-5.7.25/
./bin/mysqld --initialize --user=mysql --basedir=/data/TmServer/mysql5.7/ --datadir=/data/TmServer/mysql5.7/data/
#注意 basedir 和 datadir 的对应目录位置
初始化完成之后,查看日志
cat /opt/mysql/mysql-5.7.25/data/mysqld.log
把启动脚本放到开机初始化目录
cd /opt/mysql/mysql-5.7.25/support-files
cp mysql.server /etc/init.d/mysql
把hahad添加到系统服务列表
cd /etc/init.d
chkconfig --add mysql
设定hahad的开关(on/off)
chkconfig mysql on
就可以看到已经注册了hahad的服务
chkconfig --list mysql
启动mysql服务
service mysql start
停止mysql服务
service mysql stop
重启mysql服务
service mysql restart
登录mysql,密码为初始密码
cd /opt/mysql/mysql-5.7.25
./bin/mysql -u root -p
#提示输入密码,直接回车进入
修改密码
mysql> set password=password('123456');
mysql> grant all privileges on *.* to root@'%' identified by '123456';
mysql> flush privileges;
添加远程访问权限
mysql> use mysql;
mysql> update user set host='%' where user = 'root';
mysql> flush privileges;
重启mysql生效
service mysql stop
service mysql start
或
service mysql restart
查看mysql是否正常运行
ps -ef|grep mysql
mysql调优
修改my.cnf配置文件
修改默认存储引擎: default-storage-engine=INNODB
key_buffer_size = 256M
#key_buffer_size指定用于索引的缓冲区大小,增加它可得到更好的索引处理性能。对于内存在4GB左右的服务器该参数可设置为256M或384M。注意:该参数值设置的过大反而会是服务器整体效率降低!
max_allowed_packet = 20M
#可以控制其通信缓冲区的最大长度,所以当缓冲区的大小太小的时候,导致某些查询和批量插入操作报错。
bulk_insert_buffer_size = 120M
# 批量插入缓存大小, 这个参数是针对MyISAM存储引擎来说的。适用于在一次性插入100-1000+条记录时, 提高效率。默认值是8M。可以针对数据量的大小,翻倍增加。
thread_stack = 256K 每个连接分配的内存
table_cache = 64 连接池数量
#设置了连接池 1G —>8 2G —>16 3G —>32 4G —> 64
sort_buffer_size = 6M
#查询排序时所能使用的缓冲区大小。注意:该参数对应的分配内存是每连接独占,如果有100个连接,那么实际分配的总共排序缓冲区大小为100 × 6 = 600MB。所以,对于内存在4GB左右的服务器推荐设置为6-8M。
read_buffer_size = 4M
#读查询操作所能使用的缓冲区大小。和sort_buffer_size一样,该参数对应的分配内存也是每连接独享。
join_buffer_size = 8M
#联合查询操作所能使用的缓冲区大小,和sort_buffer_size一样,该参数对应的分配内存也是每连接独享。
myisam_sort_buffer_size = 64M
table_cache = 512
query_cache_size = 64M
tmp_table_size = 256M
# MySQL的heap(堆积)表缓冲大小。所有联合在一个DML指令内完成,并且大多数联合甚至可以不用临时表即可以完成。
max_connections = 768
#指定MySQL允许的最大连接进程数。如果在访问论坛时经常出现Too Many Connections的错误提 示,则需要增大该参数值。
max_connect_errors = 10000000
# 对于同一主机,如果有超出该参数值个数的中断错误连接,则该主机将被禁止连接
wait_timeout = 10
#指定一个请求的最大连接时间,对于4GB左右内存的服务器可以设置为5-10。
skip-networking
#开启该选项可以彻底关闭MySQL的TCP/IP连接方式,如果WEB服务器是以远程连接的方式访问MySQL数据库服务器则不要开启该选项!否则将无法正常连接!
table_cache=1024
#物理内存越大,设置就越大.默认为2402,调到512-1024最佳
innodb_additional_mem_pool_size=4M
#默认为2M
innodb_flush_log_at_trx_commit=1
#设置为0就是等到innodb_log_buffer_size列队满后再统一储存,默认为1
innodb_log_buffer_size=2M
#默认为1M
innodb_thread_concurrency=8
#你的服务器CPU有几个就设置为几,建议用默认一般为8
key_buffer_size=256M
#默认为218,调到128最佳
tmp_table_size=64M
#默认为16M,调到64-256最挂
read_buffer_size=4M
#默认为64K
read_rnd_buffer_size=16M
#默认为256K
sort_buffer_size=32M
#默认为256K
thread_cache_size=120
#默认为60
query_cache_size=32M