下载地址 https://downloads.mysql.com/archives/community/
笔者这里把下载的文件上传到了 /usr/software
目录
#解压安装包
[root@iZ2zec74ta983l9lm1uu3dZ software]# tar -zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
#创建mysql二进制文件存放目录
[root@iZ2zec74ta983l9lm1uu3dZ software]# mkdir /application
#移动到安装目录
[root@localhost software] mv mysql-5.7.22-linux-glibc2.12-x86_64 /application/mysql
[root@iZ2zec74ta983l9lm1uu3dZ ~]# rpm -qa | grep mariadb
[root@iZ2zec74ta983l9lm1uu3dZ ~]# rpm -qa | grep mariadb
[root@iZ2zec74ta983l9lm1uu3dZ ~]# useradd -s /sbin/nologin mysql
检查一下刚才添加的用户信息
[root@iZ2zec74ta983l9lm1uu3dZ ~]# id mysql
[root@iZ2zec74ta983l9lm1uu3dZ ~]# vim /etc/profile
在profile中添加如下内容:
export PATH=/application/mysql/bin:$PATH
执行命名,环境变量生效:
[root@iZ2zec74ta983l9lm1uu3dZ ~]# source /etc/profile
配置完以上就可以查看mysql版本了
[root@iZ2zec74ta983l9lm1uu3dZ ~]# mysql -V
创建mysql数据根目录
[root@iZ2zec74ta983l9lm1uu3dZ ~]# mkdir /data
授权
[root@iZ2zec74ta983l9lm1uu3dZ ~]# chown -R mysql.mysql /application/*
[root@iZ2zec74ta983l9lm1uu3dZ ~]# chown -R mysql.mysql /data
创建mysql数据目录并授权
[root@iZ2zec74ta983l9lm1uu3dZ ~]# mkdir /data/mysql/data -p
[root@iZ2zec74ta983l9lm1uu3dZ ~]# chown -R mysql.mysql /data/mysql/data/
初始化数据
[root@iZ2zec74ta983l9lm1uu3dZ ~]# mysqld --initialize-insecure --user=mysql --basedir=/application/mysql --datadir=/data/mysql/data
参数说明:
mysqld:第四步已经配置了环境变量,这里用mysqld。mysqld的目录为 /application/mysql/bin
–initialize-insecure 初始化的时候,使用非安全模式,也就是初始化的时候无密码,向对应的是: --initialize 初始化后会生成一个强类型的密码
–user :mysql用户
–basedir: mysql二进制的目录
–datadir: mysql数据目录
初始化过程中如果报这个错误,安装如下依赖包
mysqld: error while loading shared libraries: libaio.so.1: cannot open
shared object file: No such file or directory
[root@iZ2zec74ta983l9lm1uu3dZ ~]# yum install -y libaio-devel
初始化完成之后 data目录 文件如下 /data/mysql/data
cat >/etc/my.cnf <[mysqld]
user=mysql
basedir=/application/mysql
datadir=/data/mysql/data
socket=/tmp/mysql.sock
server_id=6
port=3306
[mysql]
socket=/tmp/mysql.sock
EOF
拷贝mysql.server件到/etc/init.d 目录 并重命名为mysqld
[root@iZ2zec74ta983l9lm1uu3dZ data]# cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld
启动数据库
[root@iZ2zec74ta983l9lm1uu3dZ data]# service mysqld start
常用命令
# 启动,两种方式都可以
[root@iZ2zec74ta983l9lm1uu3dZ data]# service mysqld start
[root@iZ2zec74ta983l9lm1uu3dZ data]# /etc/init.d/mysqld start
# 重新启动,两种方式都可以
[root@iZ2zec74ta983l9lm1uu3dZ data]# service mysqld restart
[root@iZ2zec74ta983l9lm1uu3dZ data]# /etc/init.d/mysqld restart
# 停止,两种方式都可以
[root@iZ2zec74ta983l9lm1uu3dZ data]# service mysqld restart
[root@iZ2zec74ta983l9lm1uu3dZ data]# /etc/init.d/mysqld restart
#查看是否启动成功
[root@iZ2zec74ta983l9lm1uu3dZ data]# netstat -lnp | grep 3306
添加配置信息
cat > /etc/systemd/system/mysqld.service <[Unit]
Desciption=Mysql Server
Documentation=man.mysqld(8)
Documentation=https://dev.mysql.com/doc/refman/8.0/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=muiti-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/application/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE=5000
EOF
配置好以后就可以启动了
[root@iZ2zec74ta983l9lm1uu3dZ data]# systemctl start mysqld
常用命令
#启动
[root@iZ2zec74ta983l9lm1uu3dZ data]# systemctl start mysqld
#重新启动
[root@iZ2zec74ta983l9lm1uu3dZ data]# systemctl restart mysqld
#停止
[root@iZ2zec74ta983l9lm1uu3dZ data]# systemctl stop mysqld
[root@iZ2zec74ta983l9lm1uu3dZ data]# mysqladmin -uroot -p password 您的密码
接下来就可以用新密码登录mysql数据库了
[root@iZ2zec74ta983l9lm1uu3dZ data]# mysql -uroot -p
登录账户
[root@iZ2zec74ta983l9lm1uu3dZ data]# mysql -uroot -p
设置root用户可以远程访问:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '您的密码'
使修改生效:
mysql> FLUSH PRIVILEGES
防火墙开放3306端口
[root@iZ2zec74ta983l9lm1uu3dZ ~]# firewall-cmd --permanent --add-port=33606/tcp
重启防火墙,使配置生效
[root@iZ2zec74ta983l9lm1uu3dZ ~]# firewall-cmd --reload
查询3306端口是否开放
[root@iZ2zec74ta983l9lm1uu3dZ ~]# firewall-cmd --query-port=3306/tcp
查看防火墙规则
[root@iZ2zec74ta983l9lm1uu3dZ ~]# firewall-cmd --list-all
通过以上配置mysql的root用户就可以远程连接了,赶快去试试吧
# 查看防火墙状态
[root@iZ2zec74ta983l9lm1uu3dZ ~]# systemctl status firewalld
# 开启
[root@iZ2zec74ta983l9lm1uu3dZ ~]# service firewalld start
# 重启
[root@iZ2zec74ta983l9lm1uu3dZ ~]# service firewalld restart
# 关闭
[root@iZ2zec74ta983l9lm1uu3dZ ~]# service firewalld stop
# 查询端口是否开放
firewall-cmd --query-port=80/tcp
# 开放80端口
firewall-cmd --permanent --add-port=80/tcp
# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload
# 参数解释
1、firwall-cmd:是Linux提供的操作firewall的一个工具;
2、--permanent:表示设置为持久;
3、--add-port:标识添加的端口;