Linux部署MySQL教程

本文详细介绍了如何在Linux系统中安装MySQL 5.7,包括下载安装包、检查并移除已有的MySQL或MariaDB、创建数据目录、配置my.cnf、初始化数据库、设置开机启动、调整参数以优化性能等步骤,最后还涉及了数据库的安全性和远程访问权限的设置。
摘要由CSDN通过智能技术生成

第一步:下载安装包

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值