Linux下搭建mysql5.7数据库

小白不怕黑 / 2024-12-29 / 原文

Linux下搭建mysql数据库

  1. 系统约定

系统版本:Centos7.3 Mysql版本:5.7

安装文件下载目录:/data/software

Mysql安装目录:/opt/app/mysql

数据库保存位置:/opt/app/mysql/data/mysql

日志保存位置:/opt/app/mysql/data/mysql/log/mysql

  1. 下载mysql

方式一:

在官网:http://dev.mysql.com/downloads/mysql/ 中,选择以下版本的mysql下载(可根据需要安装的mysql版本进行下载):

1620631135(1)--建议:在windows上使用迅雷下载,速度很快(我的是1M/s),然后用工具(Xftp)上传到 /data/software目录下;

方式二:

执行如下命名:

#mkdir -p /data/software

#cd /data/software

--下载安装包

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

  1. 解压安装包到安装位置

#cd /data/software

--解压压缩包

#tar -xzvf /home/umpay/data/mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz

1620634121(1)

--移动并修改文件名

#mv /home/umpay/data/mysql-5.7.33-linux-glibc2.12-x86_64 /opt/app/mysql

  1. 新建mysql用户、组及目录

#---新建一个msyql组

# useradd -d /opt/app/mysql -s /sbin/nologin mysql ---新建msyql用户禁止登录shell

chown -R mysql:mysql /opt/app/mysql

1620634734(1)

  1. 创建数据库数据存储目录

--/opt/app/mysql/data/mysql 数据仓库目录

# mkdir -p /opt/app/mysql/data/mysql

chown -R mysql:mysql /opt/app/mysql/data/mysql

  1. 修改系统配置文件
    1)自5.7.18之后就不在提供my-default.cnf文件,为了使用更丰富的参数设置,拷贝以下内容,并粘贴内容即可,注意需要创建以及mysql用户权限,使用chown赋权限,如下命令:

#创建sock目录和文件并授权

mkdir -p /opt/app/mysql/lib/mysql

touch /opt/app/mysql/lib/mysqlmysql.sock

chown -R mysql:mysql /opt/app/mysql/lib/mysql

#备份my.cnf文件

mv /etc/my.cnf /etc/my.cnfbak

vim /etc/my.cnf

[mysqld]

server_id=76

relay_log=mysql_relaylog

relay_log_index=mysql_relaylog.index

log-slave-updates=true

log_bin=binlog

log_bin_index=binlog.index

wait_timeout=604800

interactive_timeout=604800

long_query_time=1

slow_query_log=ON

slow_launch_time=2

max_connections=2048

back_log=128

key_buffer_size=128M

query_cache_size=128M

query_cache_type=1

query_cache_limit=50M

max_connect_errors=100

sort_buffer_size=3M

max_allowed_packet=32M

join_buffer_size=2M

thread_cache_size=200

innodb_buffer_pool_size=51200M

innodb_flush_log_at_trx_commit=1

innodb_log_buffer_size=1280M

innodb_log_file_size=128M

innodb_log_files_in_group=3

binlog_cache_size=20M

max_binlog_cache_size=51200M

max_binlog_size=512M

expire_logs_days=7

read_buffer_size=2M

read_rnd_buffer_size=2M

bulk_insert_buffer_size=8192M

character_set_server=utf8

log_bin_trust_function_creators=TRUE

basedir = /opt/app/mysql

datadir = /opt/app/mysql/data/mysql

port = 3306

socket = /opt/app/mysql/lib/mysql/mysql.sock

sql_mode='NO_AUTO_VALUE_ON_ZERO,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,PIPES_AS_CONCAT,ANSI_QUOTES'

#跳过mysql权限验证(解决登录报1045问题,在解决后需要再注释掉重启mysql)

#skip-grant-tables

#自动清理 30 天前的log文件,可根据需要修改

expire_logs_days=30

#查询缓存

explicit_defaults_for_timestamp=true

[mysqld_safe]

log-error = /opt/app/mysql/data/mysql/log/mysqld.log

pid-file = /opt/app/mysql/data/mysql/run/mysqld.pid

[client]

socket = /opt/app/mysql/lib/mysql/mysql.sock

2)

cp /opt/app/mysql/support-files/mysql.server /etc/init.d/mysql

vim /etc/init.d/mysql

修改以下内容:

  1. 执行安装

再次授权权限以保证无权限问题

chown mysql:mysql /opt/app/mysql/data/mysql/ -R

chown mysql:mysql /opt/app/mysql/ -R

进入bin目录下执行以下命令

cd /opt/app/mysql/

#初始化mysql

# bin/mysqld --initialize --user=mysql --basedir=/opt/app/mysql --datadir=/opt/app/mysql/data/mysql

#bin/mysql_ssl_rsa_setup --datadir=/opt/app/mysql/data/mysql

此处需要注意记录生成的临时密码,如上文结尾处的:#?Fch0-_dV*Z

##初始化如果报错可以将sql-mode配置更改进行尝试初始化

1、sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

2、删除/opt/app/mysql/data/mysql/ 下所有文件

  1. 以下文件需要初始化mysql之后创建

#创建日志目录和文件并授权

mkdir /opt/app/mysql/data/mysql/log/

touch /opt/app/mysql/data/mysql/log/mysqld.log

#创建pid目录和文件并授权

mkdir /opt/app/mysql/data/mysql/run/

touch /opt/app/mysql/data/mysql/run/mysqld.pid

#授权(一定要执行)

chown mysql:mysql /opt/app/mysql/data/mysql/ -R

  1. 启动

启动前再次执行!!!!

chown mysql:mysql /opt/app/mysql/data/mysql/ -R

chown mysql:mysql /opt/app/mysql -R

/etc/init.d/mysql start

#提示以下则成功

[root@node1-jin mysql]# /etc/init.d/mysql start

Starting MySQL... SUCCESS!

#查看mysql进程

ps -ef |grep mysql

#如果提示以下需检查数据目录/opt/app/mysql/data/mysql的权限,

Starting MySQL.......... ERROR! The server quit without updating PID file (/opt/app/mysql/data/mysql/node1-jin.pid).

#执行此命令解决

chown mysql:mysql /opt/app/mysql/data/mysql/ -R

  1. 登录mysql

#mysql -hlocalhost -uroot -p

 --如果出现:-bash: mysql: command not found

 --就执行: # ln -s /opt/app/mysql/bin/mysql /usr/bin --没有出现就不用执行

--输入第七步生成的root临时密码

--初次修改密码

mysql> flush privileges;

Query OK, 0 rows affected (0.18 sec)

mysql>set password for root@localhost=password('umpay2010');

mysql> flush privileges; #立即生效

--设置root账户的host地址(修改了才可以远程连接,不安全不建议开放)

mysql>grant all privileges on *.* to 'root'@'%' identified by 'root';

update user set user.Host=’%’ where user.User=’root’;

mysql>flush privileges;

--查看表

mysql> use mysql;

mysql> select host,user from user;

--这里就可以使用远程连接测试了;

  1. 添加开机自启

vim /etc/rc.d/rc.local

/etc/init.d/mysql start

chmod +x /etc/rc.d/rc.local