忿忿的泥巴坨 发表于 2024-8-20 17:12:49

Linux 安装MySQL

前言:

根据对应的系统位数,选择需要下载的文件。
查看系统位数
getconf LONG_BIT https://i-blog.csdnimg.cn/blog_migrate/0e86e85d4162138a03787f3ceb653b55.png

一、下载MySQL

官网地址:MySQL :: Download MySQL Community Server (Archived Versions)
https://i-blog.csdnimg.cn/blog_migrate/9d925bfae75c73aa6be006bb8ffb7889.png

通过Linux命令下载:wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-对应版本,位数.tar.gz
#修改为自己需要版本
wget https://dev.mysql.com/get/Downloads/mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz 推荐命令下载 如果使用命令下载可以跳过第二步的第一步

https://i-blog.csdnimg.cn/blog_migrate/0a98b12d10b14319eb9fb15fb432f2d6.png
二、上传MySQL压缩包到Linux并解压

1、上传到/usr/local目次


2、解压

tar -xvf mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz 3、修改文件名

mv mysql-5.7.38-linux-glibc2.12-x86_64/ mysql 4、删除压缩包

也可留着安装成功后删
rm -f mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz https://i-blog.csdnimg.cn/blog_migrate/fa48cfdb47a5b29cce9df4f01b29816c.png

三、创建MySQL用户组、组名

# 创建MySQL用户组
groupadd mysql
# 添加MySQL用户并添加到MySQL用户组
useradd -r -g mysql mysql
https://i-blog.csdnimg.cn/blog_migrate/2251b6a778c75e707a94e1511bc4dde7.png

四、创建数据目次并开启权限

1、在/usr/local/mysql目次下创建data文件夹

mkdir data https://i-blog.csdnimg.cn/blog_migrate/2643e1b3fd43de576a51498aff147b14.png

2、开启权限

chown -R mysql:mysql /usr/local/mysql/
https://i-blog.csdnimg.cn/blog_migrate/249f6165ef193b245236173370446a49.png

五、配置my.cnf文件

1、编辑my.cnf

vim /etc/my.cnf 2、修改内容,原来的直接删除把下面复制进去

复制的时候看清安装目次和数据存放目次是否和你的一致

# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password

# 设置mysql客户端默认字符集
default-character-set=utf8mb4

# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4
六、初始化MySQL

执行命令MySQL目标下bin目次下任选一个都行
1、执行命令 /usr/local/mysql目次下

./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data 2、执行命令  /usr/local/mysql/bin 目次下

./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --initialize
命令说明:
–defaults-file:默认配置文件地址
–datadir:是刚刚创建的data数据目录(不要闭着眼复制!你的目录可能跟我不一样!)
–basedir:是MySQL安装目录(你的目录名字可能跟我不一样,我的是mysql,注意注意!!!)
–user:刚刚创建的mysql用户 https://i-blog.csdnimg.cn/blog_migrate/f7e20a54a79140cdc613e72765072b16.png

红款中的密码一会登录(./mysql -u root -p )的时候要用到
怎样初始化报错如下所示
https://i-blog.csdnimg.cn/blog_migrate/65aa5d6dffaaf768755c705632808d41.png
解决方案:  
yum -y install numactl https://i-blog.csdnimg.cn/blog_migrate/6570f31dc772662ec6bb3ed0c3916ad8.png
3、将权限改回保存data

权限不改也行
chown -R root .
chown -R mysql data/ https://i-blog.csdnimg.cn/blog_migrate/12addf7e5980e0344dff55c94c3c2549.png

七、启动MySQL修改初始密码、授权远程连接

1、启动服务

/usr/local/mysql/support-files/mysql.server start
https://i-blog.csdnimg.cn/blog_migrate/33da6cbf7dc0d7094c3e0dadd1f697bc.png

2、修改初始密码

# 切换目录
cd /usr/local/mysql/bin
# 登录命令
./mysql -u root -p
#修改密码
set password for root@localhost=password('我的密码');
#刷新权限
FLUSH PRIVILEGES; SET PASSWORD = PASSWORD('密码');   可以不用执行,其时为测试设置了个简单的
执行下面命令也可以设置密码:二选其一
# 设置密码
SET PASSWORD = PASSWORD('ok');
# 设置用户的访问密码用不外期
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
#刷新权限
FLUSH PRIVILEGES;
https://i-blog.csdnimg.cn/blog_migrate/5f0a5d232354e66ee66aa9fcd5c79512.png

3、授权远程连接

1、在登录MySQL的状态授权

如果navicate连接报1130等就是没有授权远程连接

# 访问mysql库
use mysql
# 修改root用户能在任何host访问(授权远程连接)
update user set host = '%' where user = 'root';
# 刷新
FLUSH PRIVILEGES;
https://i-blog.csdnimg.cn/blog_migrate/932c9ae7a5a405183c27b7d35d32842d.png

2、退出mysql

https://i-blog.csdnimg.cn/blog_migrate/90177b873c95eda1d8e7fe482b581ad4.png
这里就可以用连接工具测试链接了

八、开启自启

1、依次执行下面命令进行软连接

ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql

service mysql restart
https://i-blog.csdnimg.cn/blog_migrate/e41acb9b70a453d94b70ae1a866c2d32.png
2、赋予权限、添加服务、显示服务列表

#赋予权限
chmod +x /etc/init.d/mysql

#添加服务
chkconfig --add mysql

#显示服务列表
chkconfig --list
https://i-blog.csdnimg.cn/blog_migrate/a42d38f781058441c4225f20c8bef6f1.png

3、开启失败

如上图所示,如果是2,3,4,5 都是开启的话则成功。
如果不是,可运行以下命令开启:
chkconfig --level 2345 mysql on
4、重启服务器

reboot
5、查看MySQL进程是否启动

ps -aux | grep mysql
https://i-blog.csdnimg.cn/blog_migrate/85ae23acb4e015fa0848dcb9fae80f3d.png

九、Navicat 连接

连接时出现 2002错误代码,可能是防火墙没有开放3306端口。
也可以将防火墙关闭,不建议如许
# 开启端口3306
firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 重启防火墙
firewall-cmd --reload
# 查看已经开放的端口
firewall-cmd --list-ports
https://i-blog.csdnimg.cn/blog_migrate/e31a6f455b42e1f36a685d6f457b9190.png
https://i-blog.csdnimg.cn/blog_migrate/2ee3f94d9dbe64795289d8e69b9ab9ef.png
十、防火墙命令

1.查看防火墙状态
查看防火墙状态 systemctl status firewalld
开启防火墙 systemctl start firewalld
关闭防火墙 systemctl stop firewalld
开启防火墙 service firewalld start
         若遇到无法开启
         先用:systemctl unmask firewalld.service
         然后:systemctl start firewalld.service

2.查看对外开放的端口状态
         查询已开放的端口 netstat-ntulp | grep 端口号:可以具体查看某一个端口号
         查询指定端口是否已开 firewall-cmd --query-port=666/tcp
         提示 yes,表示开启;no表示未开启。

3.对外开发端口
       查看想开的端口是否已开:firewall-cmd --query-port=6379/tcp
       添加指定需要开放的端口:firewall-cmd --add-port=123/tcp --permanent
       重载入添加的端口:firewall-cmd --reload
       查询指定端口是否开启成功:firewall-cmd --query-port=123/tcp
       移除指定端口:firewall-cmd --permanent --remove-port=123/tcp

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Linux 安装MySQL