一、tar.gz文件安装Mysql 5.7

官方参考文档:https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html

1.下载tar.gz文件 

官网:https://dev.mysql.com/downloads/mysql/5.7.html#downloads

根据需要选择64位or32位文件,下载完成后上传到服务器中。

2.解压文件

    选择你的安装位置,解压到此位置。

tar -zxvf mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz

    解压后的mysql文件夹名称较长,为了方便后续使用,可更改文件夹名称为 mysql

mv mysql-5.7.25-linux-glibc2.12-x86_64 mysql

3.创建用户和用户组

# 创建mysql用户组

[root@CDH-141 ~]# groupadd mysql 

# 创建一个用户名为mysql的用户,并加入mysql用户组
# mysql用户正常情况下只用于mysql程序初始化和启动,因此,为安全考虑可禁用Centos的mysql用户ssh登陆权限

[root@CDH-141 ~]# useradd -s /sbin/nologin -g mysql mysql 

# 制定用户的password(可选)
[root@CDH-141 ~]# passwd mysql

4.配置文件

mysql启动时默认的配置文件为 /etc/my.cnf,当然你可以在启动命令后使用参数 --defaults-file 来使用自定义的配置文件

配置文件可根据需求修改,详细学习文档请在网上自行查找,简单使用时主要的修改项可参考以下几项

(自定义配置文件配置项时,需手动创建对应的文件/文件夹,例如:datadir=/opt/joget/mysql/data ,需先在 /opt/joget/mysql/下创建 data 文件夹)

[client]
port=3306
socket=/var/lib/mysql/mysql.sock

[mysqld]
port=3306
basedir=/opt/joget/mysql
datadir=/opt/joget/mysql/data
socket=/var/lib/mysql/mysql.sock
character_set_server=utf8

# binlog日志路径,格式为mysql-log.00000*,递增。默认在data文件夹下,可以用路径/全路径指定位置
log-bin=mysql-log
#指定index日志路径,可以为路径/全路径 (数据库没初始化之前,路径不能设置在datadir路径下)
#log-bin-index=mysql-log.index
# binlog日志保留天数,默认为 0 表示不过期
expire-logs-days=7
#Mysql集群中指定id,不可重复
server-id=1
# binlog日志有三种格式,分别是Statement、MiXED、ROW
binlog-format=ROW
# binlog每个日志文件大小 默认1G
# max-binlog-size = 100M

5.初始化数据库

# 进入你的mysql根目录(注:此处用了root账号操作,如果使用mysql账号操作的话先执行下方“更改Mysql安装目录所属”的操作)
cd mysql
​
# 初始化数据库 当你想使用自定义的配置文件时,可在命令后面加 --defaults-file=/etc/my.cnf,例如:bin/mysqld --initialize --user=mysql --defaults-file=/etc/my.cnf
bin/mysqld --initialize --user=mysql

bin/mysql_ssl_rsa_setup

(bin/mysqld --initialize 将生成一个已过期的初始密码,可在初始化信息中看到如下内容:“[Warning] A temporary password is generated for root@localhost: iTag*AfrH5ej”,红色字体即为初始密码)

(详细内容看:MySQL :: MySQL 5.7 Reference Manual :: 2.10.1 Initializing the Data Directory

# 将Mysql安装目录所属更改为启动用户mysql,设置750权限
chown -R mysql:mysql mysql
#(750权限设置为可选操作)这里和官网不一样,直接给整个mysql文件夹设置了此权限
chmod 750 mysql

6.启动mysql

(先将 “socket=/var/lib/mysql/mysql.sock” 指定的文件夹“/var/lib/mysql/” 操作权限赋予给mysql用户)

# 启动前需要确保你的 basedir datadir等文件夹权利已授予启动用户mysql,并且socket文件夹存在。如果没有,初始化时会报错,不过也没有关系,再将根据报错给对应的文件夹或文件授予权限,然后再次启动即可

启动方式有多种,这里介绍三个启动方式

(1)mysql.server

启动文件位于mysql根目录下的 support-files/mysql.server ,将此文件拷贝到centos的 init.d 下即可使用centos的service mysql [option] 来管理mysql的运行。

cp support-files/mysql.server /etc/init.d/mysqld

启动: service mysqld start
停止: service mysqld stop
重启服务: service mysqld restart

(2)mysqld_safe (适用于高版本的mysql)

mysqld_safe是mysql提供的安全启动模式,mysqld_safe从选项文件的[mysqld]、[server]和[mysqld_safe]部分读取所有选项。[mysqld_safe]的配置项优先[mysqld],所以my.cnf配置文件中,你可以删除[mysqld_safe]下的内容,只适用[mysqld]

​
# 启动服务 --user=mysql表示以centos用户mysql运行,可以去掉,为:bin/mysqld_safe &
# 指定自定义my.cnf配置文件启动:bin/mysqld_safe --defaults-file=/etc/my.cnf &
shell> bin/mysqld_safe --user=mysql &

# 关闭mysql服务,需要mysql的root用户
shell> bin/mysqladmin shutdown -uroot -p

​

(3)systemctl管理

参考 https://dev.mysql.com/doc/refman/5.7/en/using-systemd.html

  1. 新增配置文件

增加一个systemd单元配置文件,该文件详细描述了MySQL服务。文件名为mysqld.service,文件位于 /usr/lib/systemd/system 。

shell> cd /usr/lib/systemd/system

shell> touch mysqld.service

shell> chmod 644 mysqld.service


将以下内容添加到 mysqld.service 文件:(注意根据自己的情况修改红色标识)

[Unit]

Description=MySQL Server

Documentation=man:mysqld(8)

Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html

After=network.target

After=syslog.target

[Install]

WantedBy=multi-user.target

[Service]

# 配置自己的用户和用户组

User=mysql

Group=mysql

# Have mysqld write its state to the systemd notify socket

Type=forking

# Disable service start and stop timeout logic of systemd for mysqld service.

TimeoutSec=0 

# Start main service  ExecStart:mysqld 启动命令,指定mysql文件路径

#参考:https://dev.mysql.com/doc/refman/5.7/en/server-options.html

ExecStart=/usr/local/mysql/bin/mysqld --daemonize $MYSQLD_OPTS

# Use this to switch malloc implementation

EnvironmentFile=-/etc/sysconfig/mysql

# Sets open_files_limit

LimitNOFILE = 10000

Restart=on-failure

RestartPreventExitStatus=1

# Set environment variable MYSQLD_PARENT_PID. This is required for restart.

Environment=MYSQLD_PARENT_PID=1

PrivateTmp=false

通过 journalctl 命令可以查看systemd的日志文件。查看mysqld相关日志信息,可以使用 journalctl -u mysqld。

2.使用systemctl管理

#启动

shell> systemctl start mysqld

#检查mysqld状态

shell> systemctl status mysqld

#配置开机自启动

shell> systemctl enable mysqld.service

7.mysql client连接

本地使用 mysql -u -p 的命令连接mysql服务端时需要使用mysql的“mysql”文件,文件位于mysql目录下的 /bin 文件夹下,可进入 bin目录下,使用 ./mysql -u -p 连接

不过,为了方便起见,可直接将 bin/mysql  文件建立一个软链接(ln -fs /MYSQLPATH/bin/mysql /usr/bin/mysql),即可直接使用 mysql -u -p 的命令连接

shell> ln -fs /opt/joget/mysql/bin/mysql /usr/bin/mysql

8.连接后

mysql -u  -p 连接后修改root密码

ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐