4.CentOS7安装MySQL5.7

CentOS7安装MySQL5.7

2023-11-13 小柴你能看到嘛

哔哩哔哩视频地址

https://www.bilibili.com/video/BV1jz4y1A7LS/?vd_source=9ba3044ce322000939a31117d762b441

一.解压

shell 复制代码
tar -xvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz

1.在/usr/local解压 
tar -xvf  mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz
2.改名
mv mysql-5.7.44-linux-glibc2.12-x86_64 mysql
3.创建用户组
 groupadd mysql
4.查看一下用户组
cat /etc/group
5.创建用户加入mysql组
 useradd -r -g mysql mysql
 6.查询用户
 cat /etc/passwd
 7.创建mysql/data文件夹
 mkdir /usr/local/mysql/data
 8.cd mysql
 9.chown 改变属组/属主 那个目录下的文件
chown -R mysql:mysql /usr/local/mysql  
10.#赋予权限 755 可读 可写
chmod 755 /usr/local/mysql
11.初始化数据库

二.再移动并重命名一下

如果**/usr/local/下不存在mysql**文件夹,直接执行如下命令

shell 复制代码
mv mysql-5.7.26-linux-glibc2.12-x86_64 /usr/local/mysql

下面是存在mysql文件夹,移动加删除的步骤:

三.创建mysql用户组和用户并修改权限

shell 复制代码
groupadd mysql

useradd -r -g mysql mysql

四.创建数据目录并赋予权限

shell 复制代码
mkdir /usr/local/mysql/data   #创建目录


chown -R mysql:mysql /usr/local/mysql  #赋予权限

chmod 755 /usr/local/mysql

五.初始化数据库 p*lz%oCOg7k>

进入mysql的bin目录

shell 复制代码
cd /usr/local/mysql/bin/

初始化

shell 复制代码
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql 

运行时,若出现错误,如:

./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file rectory

1.先检查该链接库文件有没有安装使用 命令进行核查

shell 复制代码
rpm -qa|grep libaio  

2.运行该命令后发现系统中无该链接库文件使用命令

shell 复制代码
yum install  libaio-devel.x86_64

3.安装成功后,继续运行数据库的初始化命令,提示成功。密码:Wvhtao6egRp

shell 复制代码
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql 

六.修改配置my.cnf

shell 复制代码
vim /etc/my.cnf

内容如下

shell 复制代码
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/var/lib/mysql/mysql.sock

[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true

七.启动mysql

shell 复制代码
/usr/local/mysql/support-files/mysql.server start

或在mysql/bin目录下,直接启动

shell 复制代码
service mysql start

7.1 启动时报错,发现并没有'/var/log/mariadb/mariadb.log'这个路径

Starting MySQL.2021-01-29T09:43:29.326873Z mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.lists. Create writable for user 'mysql'.

ERROR! The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid).

那我们就创建, 并给mysql用户授权即可

shell 复制代码
#mkdir /var/log/mariadb

#touch /var/log/mariadb/mariadb.log

#chown -R mysql:mysql  /var/log/mariadb/

7.2 启动时报错,Starting MySQL.2021-01-29T09:45:20.578176Z mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don

ERROR! The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid).

发现没有'/var/lib/mysql'这个路径,则先创建目录mkdir /var/lib/mysql。

Mysql客户端和服务器端是通过初始化mysql.sock 文件来进行通信,所以服务器在启动时需要写入该文件,因此该文件所存放的目录必须双方都具有访问权限。所以,MySQL服务不具备目录 /var/lib/mysql 的写入权限,无法生成mysql.sock文件,自然服务启动时无法找到该文件。给目录 /var/lib/mysql 付予写入权限或者最大权限chmod 777 /var/lib/mysql

shell 复制代码
mkdir /var/lib/mysql

chmod 777  /var/lib/mysql

启动服务,显示成功

shell 复制代码
/usr/local/mysql/support-files/mysql.server start

为了以后启动方便,不用每次都进入

/usr/local/mysql/support-files/mysql.server start启动服务,可以直接使用service mysql start 直接启动服务,则添加如下软连接,并重启服务

shell 复制代码
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

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

查看服务器的进程信息

shell 复制代码
ps -ef|grep mysql

到这里说明mysql已经安装成功了!!

八.修改密码

首先登录mysql,前面的那个是随机生成的。

mysql 复制代码
mysql -u root -p  

回车之后,输入之前的密码

输入密码后报错,ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)。

则输入命令:

shell 复制代码
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

Tips 出现其他类似问题则:

在'/tmp/mysql.sock'、'/var/lib/mysql/mysql.sock' 查看是否有文件;

若'/var/lib/mysql/mysql.sock'存在,则执行:

ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock 为其创建连接

若'/tmp/mysql.sock'存在,则执行:

ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock为其创建连接

也可以用下面的方式,设置密码永久有效:

mysql 复制代码
SET PASSWORD = PASSWORD('lgy888..');

ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;

FLUSH PRIVILEGES; 

九.支持远程连接

登录成功后,修改密码,支持远程连接

mysql 复制代码
use mysql;

update user set user.Host='%' where user.User='root';

FLUSH PRIVILEGES;

在"安全组"中开放对应3306端口号

设置防火墙对3306端口开放

shell 复制代码
[root@localhost bin]# firewall-cmd --permanent --zone=public --add-port=6379/tcp

FirewallD is not running
失败
systemctl start firewalld.service

成功
success

[root@localhost bin]# firewall-cmd --reload

success

[root@localhost bin]# firewall-cmd --zone=public --query-port=6379/tcp

yes

赋予外部访问本数据的权限

mysql 复制代码
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;

flush privileges;

十.设置开机自动启动

1、将服务文件拷贝到init.d下,并重命名为mysqld

shell 复制代码
[root@localhost /]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

2、赋予可执行权限

shell 复制代码
[root@localhost /]# chmod +x /etc/init.d/mysqld

3、添加服务

shell 复制代码
[root@localhost /]# chkconfig --add mysqld

4、显示服务列表

shell 复制代码
[root@localhost /]# chkconfig --list

1、将服务文件拷贝到init.d下,并重命名为mysqld

shell 复制代码
[root@localhost /]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

2、赋予可执行权限

shell 复制代码
[root@localhost /]# chmod +x /etc/init.d/mysqld

3、添加服务

shell 复制代码
[root@localhost /]# chkconfig --add mysqld

4、显示服务列表

shell 复制代码
[root@localhost /]# chkconfig --list

外链图片转存中...(img-5vsG6svt-1699886208744)

相关推荐
alexhilton37 分钟前
务实的模块化:连接模块(wiring modules)的妙用
android·kotlin·android jetpack
ji_shuke1 小时前
opencv-mobile 和 ncnn-android 环境配置
android·前端·javascript·人工智能·opencv
sunnyday04263 小时前
Spring Boot 项目中使用 Dynamic Datasource 实现多数据源管理
android·spring boot·后端
幽络源小助理4 小时前
下载安装AndroidStudio配置Gradle运行第一个kotlin程序
android·开发语言·kotlin
inBuilder低代码平台5 小时前
浅谈安卓Webview从初级到高级应用
android·java·webview
豌豆学姐5 小时前
Sora2 短剧视频创作中如何保持人物一致性?角色创建接口教程
android·java·aigc·php·音视频·uniapp
越甲八千5 小时前
简单fastapi和压测实例
adb·fastapi
白熊小北极5 小时前
Android Jetpack Compose折叠屏感知与适配
android
HelloBan5 小时前
setHintTextColor不生效
android
洞窝技术7 小时前
从0到30+:智能家居配网协议融合的实战与思考
android