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)

相关推荐
雨白7 小时前
Jetpack系列(二):Lifecycle与LiveData结合,打造响应式UI
android·android jetpack
kk爱闹8 小时前
【挑战14天学完python和pytorch】- day01
android·pytorch·python
每次的天空10 小时前
Android-自定义View的实战学习总结
android·学习·kotlin·音视频
恋猫de小郭10 小时前
Flutter Widget Preview 功能已合并到 master,提前在体验毛坯的预览支持
android·flutter·ios
断剑重铸之日11 小时前
Android自定义相机开发(类似OCR扫描相机)
android
随心最为安11 小时前
Android Library Maven 发布完整流程指南
android
岁月玲珑11 小时前
【使用Android Studio调试手机app时候手机老掉线问题】
android·ide·android studio
还鮟16 小时前
CTF Web的数组巧用
android
小蜜蜂嗡嗡17 小时前
Android Studio flutter项目运行、打包时间太长
android·flutter·android studio
aqi0017 小时前
FFmpeg开发笔记(七十一)使用国产的QPlayer2实现双播放器观看视频
android·ffmpeg·音视频·流媒体