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)]