文章目录
0 关闭防火墙或开放3306端口
0.1 防火墙
查看状态
# 查看防火墙状态
systemctl status firewalld
# 或者
firewall-cmd --state
关闭防火墙
# 临时关闭防火墙
systemctl stop firewalld.service
# 或者
systemctl stop firewalld
# 永久关闭防火墙(必须先临时关闭防火墙,再执行该命令,进行永久关闭)
systemctl disable firewalld.service
# 或者
systemctl disable firewalld
重启生效
# 重启防火墙
systemctl restart firewalld.service
# reload
firewall-cmd --reload
0.2 开放指定端口
开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 显示 success 表示成功
# –zone=public 表示作用域为公共的
# –add-port=443/tcp 添加 tcp 协议的端口端口号为 443
# –permanent 永久生效,如果没有此参数,则只能维持当前服务生命周期内,重新启动后失效;
查看已开启端口
firewall-cmd --list-ports
关闭指定端口
#关闭指定端口
firewall-cmd --zone=public --remove-port=8080/tcp --permanent
systemctl restart firewalld.service
firewall-cmd --reload
0.3 其他命令
#查看端口被哪一个进程占用
netstat -lnpt |grep 5672
# centos7默认没有 netstat 命令,需要安装 net-tools 工具:
# 安装 net-tools
yum install -y net-tools
1 下载mysql8
https://dev.mysql.com/downloads/mysql/
- 查看服务器操作系统
cat /etc/redhat-release
- 查看glibc版本
getconf GNU_LIBC_VERSION
- 选择对应版本下载
2 安装 mysql 8.0.33
mysql参考手册(官方参考文档):
https://dev.mysql.com/doc/refman/8.0/en/binary-installation.html
2.0 安装前,检测系统是否自带安装 MySQL
rpm -qa | grep mysql
- 普通删除模式
rpm -e mysql-8.0.33-linux-glibc2.28-x86_64.tar.gz #填上面查看的回显
- 如果提示有依赖项,使用以下命令删除
rpm -e --nodeps mysql-8.0.33-linux-glibc2.28-x86_64.tar.gz #填上面查看的回显
2.1 添加系统mysql组和mysql用户
- 查看是否已存在,已存在就不用添加
cat /etc/group | grep mysql
- 添加
groupadd mysql
# useradd命令使用 -r和-s /bin/false选项来创建对服务器主机没有登录权限的用户
useradd -r -g mysql -s /bin/false mysql
2.2 上传压缩包、解压、软链接
- 解压、软链接
# 压缩包放在这里
cd /opt
# 解压 (不用-v,不输出日志)
tar xf mysql-8.0.33-linux-glibc2.28-x86_64.tar.gz
# 软链接到/usr/local/mysql
ln -s /opt/mysql-8.0.33-linux-glibc2.28-x86_64 /usr/local/mysql
- 修改环境变量
# 临时(重启失效)
export PATH=$PATH:/usr/local/mysql/bin
# 永久生效
vim /etc/profile
# 在最后一行加入此内容( export PATH=/usr/local/mysql/bin:$PATH )
# 刷新
source /etc/profile
- 查看是否生效
mysql -V
# 重启命令
reboot
# 重启后再查看打印版本号则说明上面的配置有效
mysql -V
至此,mysql已安装完毕
3 安装后的设置和测试
3.1 创建数据目录
mkdir -p /data/3306/data
# change owner,修改文件(或目录)的所有者
chown mysql.mysql /data/3306
# 授权
chmod 750 /data/3306
3.2 创建配置文件
# 删除旧配置
rm -rf /etc/my.cnf
# 创建
vim /etc/my.cnf
my.cnf内容
# my.cnf 内容如下
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/3306/data
socket=/data/3306/mysql.sock
# 使用“mysql_native_password”插件认证,新插件会有兼容问题
# default_authentication_plugin=mysql_native_password
# 或者放temp下
# socket=/tmp/mysql.sock
server_id=1
[mysql]
socket=/data/3306/mysql.sock
# 或者放temp下
# socket=/tmp/mysql.sock
3.3 初始化数据目录
# 使用-insecure不会为root@'localhost'用户生成密码
# ps:能在本地登录mysql(登上了服务器),设置密码也没啥用,所以就不设了
mysqld --initialize-insecure
# 这条命令会为本地root生成随机密码(两条选一条就行,我用的上面一条)
mysqld --initialize
3.4 启动数据库
# 进入mysql启动脚本所在目录
cd /usr/local/mysql/support-files/
# 启动
./mysql.server start
每次都进入此目录启动比较麻烦
下面提供两种设置
3.4.1 System V
# 拷贝到 /etc/init.d 目录下
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# 然后就可以使用service命令控制mysql,如下:
# 重启
service mysqld restart
# 停止
service mysqld stop
# 启动
service mysqld start
# 查看状态
service mysqld status
# 或者使用mysqld全路径
/etc/init.d/mysqld status
3.4.2 systemd
systemctl enable mysqld
# 然后就可以使用systemctl控制mysqld
systemctl start mysqld
systemctl status mysqld
3.5 开机自启
- 授权
chmod +x /etc/init.d/mysqld
- 添加
chkconfig --add mysqld
- 查看
chkconfig --list
# 果看到mysql的服务,并且3,4,5都是开的话则成功,如果是关,则
chkconfig --level 345 mysqld on
4 登录
登录
# 登录mysql
mysql
# 或者
# If you used --initialize but not --initialize-insecure to initialize the data directory, connect to the server as root:
mysql -u root -p
# If you used --initialize-insecure to initialize the data directory, connect to the server as root without a password:
mysql -u root --skip-password
登陆后可以使用以下命令设置新密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';
忘记密码
https://dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html
- 关闭mysqld
systemctl stop mysqld
- 使用以下命令启动
# --skip-grant-tables 跳过登录
# --skip-networking 跳过tcp,使用本地socket(防止外部用户进入mysql)
# & 后台运行
mysqld_safe --skip-grant-tables --skip-networking &
运行后即可进入mysql,用户名密码随便写都行
登录后更改密码