本文已参与[新人创作礼]活动,一起开启掘金创作之路。
1.查看是否安装过mysql
若有已有安装的mysql,可直接使用。若想重新安装mysql,则删除重装。
1.1查看是否安装有mysql
因为用rpm -qa | grep mysql查不出来,所以只有其他方式查看。 这篇文章讲了rpm的方式:zhuanlan.zhihu.com/p/153213901
1.2下载mysql包
注意下载包的正确性, 下载链接:downloads.mysql.com/archives/co… 版本号自己定,
2.上传包并解压
2.1.将本地包传到服务器
在包的所在的目录下打开本地cmd窗口,通过命令传输到服务器根目录下的opt目录下: 需要知道服务器的ip地址,通过ip addr命令获取。看inet后面的,即为IP地址。
再执行下面语句,上传文件到服务器。
scp mysql-5.7.36-el7-x86_64.tar.gz root@192.168.189.132:/opt
在这里,因为我用的root账号,所以密码也是root。
这是上传到opt下的文件,还未解压。
2.2.解压包
到/opt目录下,找到上传的包,解压:
tar -zxvf mysql-5.7.36-el7-x86_64
解压后,可删除安装包。
目录一般有以下这些:
3.安装mysql依赖
yum install libaio
很多博客都写有更名并移动,但是可以放在自己定义的目录,为了操作方便就更名为mysql。这里就放在/opt下面。
mv mysql-5.7.36-el7-x86_64/ mysql/
4.创建数据库存放的文件data
在mysql目录下创建一个data目录。
mkdir data
5.给mysql安装目录赋予权限
chmod -R 777 /opt/mysql/
6.创建mysql组和用户
先检查是否有mysql用户组和mysql用户:
若有,但是想删除,可: 执行vipw 删除mysql那一行就行。执行vipw -s,删除mysql那一行就行。 再执行:
groupdel mysql
创建组:
groupadd mysql
创建用户:-s /bin/false参数指定mysql用户仅拥有所有权,没有登录权限。
useradd -r -g mysql -s /bin/false mysql
将用户添加到组中:
chown -R mysql:mysql ./
可使用id mysql查看一些信息。
7.修改mysql配置文件my.cnf
当时想的是把my.cnf放在mysql目录下,但是初始化mysql时就不行。搜索了一下,发现初始化时会自动加载默认的my.cnf,即/etc/my.cnf。在/etc目录下,my.cnf有则修改,my.cnf无则添加。 把以下内容替换my.cnf的内容。
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=/opt/mysql
# 设置mysql数据库的数据的存放目录
datadir=/opt/mysql/data
# 允许最大连接数
max_connections=10000
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
8.安装mysql
进入mysql的bin目录,可见bin目录下有很多内容。
安装mysql,并记住随机密码。
./mysqld --initialize --console
随机密码是: T%ocNf57QDNy
9.启动mysql服务
进入mysql目录下的服务目录 support-files下,目录下有这些内容:
执行启动服务:
./mysql.server start
出现这个错误,重新给mysql安装目录赋予权限即可。
chmod -R 777 /opt/mysql/
再执行:
./mysql.server start
10.将mysql添加到系统进程中。
cp /opt/mysql/support-files/mysql.server /etc/init.d/mysqld
到这一步,就把mysql添加到了服务进程中,就可以使用服务进程操作mysql了。
11.设置mysql自启动。
chmod +x /etc/init.d/mysqld
systemctl enable mysqld
12.修改root用户的登录密码。
切换到mysql安装包的bin目录下,执行命令:
./mysql -u root -p
会让输入密码,该密码即是记住的那个随机密码。
修改密码,密码为mysqlpassword:
mysql> alter user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mysqlpassword';
13.设置允许mysql远程登录。
mysql> use mysql
mysql> update user set user.Host='%'where user.User='root';
mysql> flush privileges;
mysql> quit
14.重启服务并测试。
systemctl restart mysql
service mysql restart
查看mysql是否启动
systemctl status mysql
15.开启防火墙和端口。
查看防火墙开放端口:
firewall-cmd --list-all
没有3306端口,也可直接查看是否启了3306端口(/etc/my.cnf定义的3306端口)
firewall-cmd --query-port=3306/tcp
开启3306端口:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
重启防火墙:
firewall-cmd --reload
16.测试链接。
使用Navicat、HSQLDB数据库管理工具都可。
my.cnf mysqld遇见问题解决
my.cnf需要放在/etc目录下面。
启动mysql时,报错:-bash: ./mysqld: 没有那个文件或目录。 原因是下错了安装包,后面重新下载了安装包就解决了问题,安装包下载如 1.1下载mysql包 所示,bin目录下主要文件如 6.安装mysql 所示。