一、Windows安装Mysql5.7
1、下载mysql的安装包
因为mysql的官方服务器下载较慢,因此可以选择国内镜像: 华为镜像或其他镜像
地址:https://mirrors.huaweicloud.com/mysql/Downloads/MySQL-5.7/
2、解包并放到预安装位置
windows系统下,C盘通常是系统盘,因此建议安装在非系统的其他盘下
3、添加mysql配置文件
在mysql的根目录下创建 my.ini。
配置如下:(部分选项根据自身需求修改)
配置项:
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port=3306
# 设置mysql的安装目录
basedir=D:\\softwares\\mysql-5.7.14-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:\\softwares\\mysql-5.7.14-winx64\\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
在mysql的根目录下创建用于存放数据的目录data
配置mysql\bin目录至环境变量
5、初始化数据库
# 卸载服务,否则会提示已经安装(如果是新安装则忽略)
mysqld --remove [服务名称]
# 初始化mysql
mysqld --initialize
# 说明:初始化后,通常会在指定的data目录下生成.err的日志文件,初始密码也在里面
6、安装mysql服务
mysqld --install [服务名称]
7、启停服务
# 启动mysql服务
net start [服务名称]
# 停止mysql服务
net stop [服务名称]
8、登录mysql
# 连接mysql
mysql -uroot -p
# 输入密码
由于第一次登录mysql使用的是临时密码,所以进入后需要修改初始密码,否则不能进行其他操作。
# 修改管理员密码并设置权限
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
# 刷新权限表,立即生效
mysql> flush privileges;
9、配置远程登录
# 创建用户并分配权限
mysql> grant all privileges on *.* to 'root'@'%' identified by '密码';
# 刷新权限表
mysql> flush privileges;
二、Linux安装Mysql5.7
1、上传MySQL.tar.gz压缩包或远程下载
# 远程下载mysql
wget https://mirrors.huaweicloud.com/mysql/Downloads/MySQL-5.7/mysql-5.7.33-el7-x86_64.tar.gz
# 解压并放到安装位置
tar -zxvf mysql-5.7.38-el7-x86_64.tar.gz
2、根目录下创建两个子文件夹并设置权限
# 创建文件夹
mkdir ./mysql57/data
mkdir ./mysql57/log
# 设置文件夹权限
chmode 777 ./mysql57/data
chmode 777 ./mysql57/log
3、新建mysql用户
在linux系统中,用户权限非常重要,如果数据库存在bug,则有可能被其他人获取创建数据库的权限,进而对其他
文件产生影响。因此,单独为mysql创建用户和用户组缩小权限范围是有必要的:
# 创建用户组mysql
groupadd mysql
# 建立系统账号并将账号添加到上面的用户组
useradd -r -g mysql mysql
# 为mysql用户设置密码
passwd mysql
4、修改目录所有者和所属组为mysql
chown -R mysql:mysql ./mysql57
5、初始化mysql
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql57 --datadir=/usr/local/mysql57/data
6、复制mysql服务至service
cp ./mysql57/support-files/mysql.server /etc/init.d/mysqld
7、编辑mysqld文件并配置对应目录
vim /etc/init.d/mysqld
# 修改项如下:
basedir= /usr/local/mysql57
datadir= /usr/local/mysql57/data
8、修改mysql配置文件
/etc/my.cnf
> vim /etc/my.cnf
# 配置项
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port=3306
# 设置mysql的安装目录
basedir=/usr/local/mysql57
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql57/data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
lower_case_table_names=1
修改配置文件访问权限:为了安全文件权限不能改成777
chmod 775 /etc/my.cnf
9、mysql服务管理命令
# 启动服务
service mysqld start
# 停止服务
service mysqld stop
# 重启服务
service mysqld restart
10、配置环境变量
vim /etc/profile
(略)
11、防火墙管理
# 查看防火墙运行状态
systemctl status firewalld.service
# 启动防火墙
systemctl start firewalld.service
# 停止防火墙
systemctl stop firewalld.service
# 查看防火墙规则
firewall-cmd --list-all --zone=public
# 添加防火墙规则
firewall-cmd --zone=public --add-port=80/tcp --permanent
#-----说明:------
--zone # 表示开放级别:
drop: 丢弃所有进入的包,而不给出任何响应
block: 拒绝所有外部发起的连接,允许内部发起的连接
public: 允许指定的进入连接
external: 同上,对伪装的进入连接,一般用于路由转发
dmz: 允许受限制的进入连接
work: 允许受信任的计算机被限制的进入连接,类似 workgroup
home: 同上,类似 homegroup
internal: 同上,范围针对所有互联网用户
trusted: 信任所有连接
--permanent # 设置永久生效
--add-port # 添加端口/协议类型
# 重载防火墙规则
firewall-cmd --reload