Linux 安装MySQL

噫吁嚱!!! 2024-09-14 09:07:03 阅读 55

前言:

根据对应的系统位数,选择需要下载的文件。

查看系统位数

<code> getconf LONG_BIT

一、下载MySQL

官网地址:MySQL :: Download MySQL Community Server (Archived Versions)

通过Linux命令下载:<code>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

推荐命令下载 如果使用命令下载可以跳过第二步的第一步

二、上传MySQL压缩包到Linux并解压

1、上传到/usr/local目录

2、解压

<code>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

三、创建MySQL用户组、组名

<code># 创建MySQL用户组

groupadd mysql

# 添加MySQL用户并添加到MySQL用户组

useradd -r -g mysql mysql

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

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

<code>mkdir data

2、开启权限

<code>chown -R mysql:mysql /usr/local/mysql/

五、配置my.cnf文件

1、编辑my.cnf

<code>vim /etc/my.cnf

2、修改内容,原来的直接删除把下面复制进去

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

[mysqld]

# 设置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]

# 设置mysql客户端默认字符集

default-character-set=utf8mb4

[client]

# 设置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用户

红款中的密码一会登录(./mysql -u root -p )的时候要用到

如何初始化报错如下所示

解决方案:  

yum -y install numactl

3、将权限改回保留data

权限不改也行

<code>chown -R root .

chown -R mysql data/

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

1、启动服务

<code>/usr/local/mysql/support-files/mysql.server start

2、修改初始密码

<code># 切换目录

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;

3、授权远程连接

1、在登录MySQL的状态授权

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

<code># 访问mysql库

use mysql

# 修改root用户能在任何host访问(授权远程连接)

update user set host = '%' where user = 'root';

# 刷新

FLUSH PRIVILEGES;

2、退出mysql

这里就可以用连接工具测试链接了

八、开启自启

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

<code>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

2、赋予权限、添加服务、显示服务列表

<code>#赋予权限

chmod +x /etc/init.d/mysql

#添加服务

chkconfig --add mysql

#显示服务列表

chkconfig --list

3、开启失败

如上图所示,如果是2,3,4,5 都是开启的话则成功。

如果不是,可运行以下命令开启:

<code>chkconfig --level 2345 mysql on

4、重启服务器

reboot

5、查看MySQL进程是否启动

ps -aux | grep mysql

九、Navicat 连接

连接时出现 2002错误代码,可能是防火墙没有开放3306端口。

也可以将防火墙关闭,不建议这样

<code># 开启端口3306

firewall-cmd --zone=public --add-port=3306/tcp --permanent

# 重启防火墙

firewall-cmd --reload

# 查看已经开放的端口

firewall-cmd --list-ports

十、防火墙命令

<code>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



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。