centos 离线安装 mysql5.7

发布时间 2023-08-30 09:19:19作者: tang1jun

下载离线安装包 tar

https://dev.mysql.com/downloads/mysql/5.7.html#downloads
(mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz)

移动到安装目录解压

/usr/local/
tar -zxvf mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz
mv 	mysql-5.7.36-linux-glibc2.12-x86_64 mysql

创建用户和用户组

sudo groupadd mysql

# 创建mysql用户组


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

制定用户的password(可选)
passwd mysql
qwer4tyui

自定义配置文件

[client]
port=3306
socket=/usr/local/mysql/mysql.sock
 
[mysqld]
# skip-grant-tables
port=3306
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/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	

初始化数据库

cd mysql

​
# 初始化数据库 当你想使用自定义的配置文件时,可在命令后面加 --defaults-file=/etc/my.cnf,例如:bin/mysqld --initialize --user=mysql --defaults-file=/etc/my.cnf
bin/mysqld --initialize --user=mysql

得到临时密码:需要记住,一会会用
CzkYyUpr0v-c
 	

bin/mysql_ssl_rsa_setup

将Mysql安装目录所属更改为启动用户mysql,设置750权限

chown -R mysql:mysql mysql

启动mysql

1、 mysql.server 启动

将此文件拷贝到centos的 init.d 下即可使用centos的service mysql [option] 来管理mysql的运行
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

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

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

​
# 启动服务 --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管理

cd /usr/lib/systemd/system

touch mysqld.service
 
chmod 644 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。

#启动 
systemctl start mysqld	 
#检查mysqld状态	 
systemctl status mysqld	 
#配置开机自启动	 
systemctl enable mysqld.service

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 /usr/local/mysql/bin/mysql /usr/bin/mysql


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

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


#查看当前授予过的权限:
use mysql;
select user,host from user;

#授予root用户远程访问权限:
grant all privileges on *.* to root@'%' identified by 'root';

# 刷新权限,使设置生效, OK。
flush privileges;