mysql安装
5.7版本
mysql
的程序在centos官方的库中是没有
的,需要切换到淘宝的镜像,
这个前面有教程- 或者配置mysql的源
yum -y install rpm
rpm --import https://repo.mysql.Com/RPM-GPG-KEY-mysqL-2022
rpm -Uvh http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm
安装mysql社区版
yum -y install mysql-community-server
启动mysqld并设置开启自启
systemctl start mysqld
systemctl enable mysqld
systemctl status mysqld
降低密码要求
set global validate_password_policy=LOW;
set global validate_password_length=4;
设置新密码
ALTER USER 'root'@'LocaLhoSt'IDENTIFIED BY'密码';
授予远程权限,并且刷新配置
grant all privileges on *.* to root@"%" identified by 'root' with grant option;n;
flush privileges;
查看一下端口
netstat -anp | grep 3306
8.x版本
参考连接:https://blog.csdn.net/studio_1/article/details/128345934
官网下载
https://dev.mysql.com/downloads/
- 下载的时候要注意个事情,mysql的glibc的版本和你系统的glibc版本要一致,不然会报错 好多文件找不到
- 网上好多教程:软链接的,升级glibc,我都没用(嫌麻烦),我直接把mysql8卸载了,
重新装一遍正确的版本
(移除对应的文件就可以了,因为你没有安装成功的话,估计也不会有啥系统残留),参考链接:https://blog.csdn.net/m0_68292446/article/details/133694672
查一下你的Linux现在的版本
rpm -qa | grep glibc
下载指定版本的tar包
卸载残留
如果你的linux上之前安装过mysql,一定会有一些数据,先卸载一下
例如:我之前安装过这个玩意,现在反向操作卸载就行了
这是当时安装的命令
yum -y install mysql-community-server
卸载的命令
yum -y remove mysql-community-server
如果不清楚,查一下有没有文件,就知道之前安装过没有
- 出来很多结果就是安装过
- 没有数据就是没有安装过
rpm -qa|grep -i mysql
把服务停了
- 一个是停
mysql5
的,另一个是mysql8
,我估计你也分不清,统统停了就好
service mysqld stop
service mysql stop
找文件,把找到的文件也都删了
find / -name mysql
好多文件,慢慢删吧
rm -rf 上面的文件
解压
通过finalshell 拖到指定文件夹中/usr/MYSQL/,然后解压(我嫌文件名长,我改过名字)
tar -xvJf mysql-8.0.39.tar.xz
解压后的文件名还是长,再改一下
mv mysql-8.0.39-linux-glibc2.28-x86_64 mysql-8.0.39
创建data文件夹
进入你安装的mysql根目录,mkdir一下新的data文件夹
mkdir data
创建用户和用户组
一般会提示你已经创建过了
groupadd mysql
useradd -g mysql mysql
授权(改变一下文件所属用户组)
把根目录的所属用户改一下
chown -R “mysql组名”.“mysql用户名” “mysql安装根目录”
chown -R mysql.mysql /usr/MYSQL/mysql-8.0.39
初始化mysql
使用一些配置,初始化mysql
一定要进入bin目录,mysqld文件在bin目录下
,不然报错- –lower-case-table-names=1 即设置不区分表明大小写,这在后面启动的时候会是一个坑,需要你更改
/etc/my.cnf
./mysqld --user=mysql --basedir=/usr/MYSQL/mysql-8.0.39 --datadir=/usr/MYSQL/mysql-8.0.39/data --lower-case-table-names=1 --initialize
改一下配置文件
- /etc/my.cnf 是默认配置文件,如果没有你就建一个
- 如果上面你配置了大小写,这里也要配置一下
vim /etc/my.cnf
port=3306
basedir=/usr/MYSQL/mysql-8.0.39/ # MySQL根目录
datadir=/usr/MYSQL/mysql-8.0.39/data/ # MySQL的data目录
socket=/tmp/mysql.sock
character-set-server=UTF8MB4
symbolic-links=0
# 这是一个坑,前面如果配置了大小写,这行是必须的
lower_case_table_names = 1
#解决“java.sql.SQLException: Expression #1 of ORDER BY clause is not in SELECT list,references column”
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
添加服务
进入mysql的根目录
cp -a ./support-files/mysql.server /etc/init.d/mysql
授权并添加服务
chmod +x /etc/init.d/mysql
chkconfig --add mysql
启动mysql
启动完mysql,再看一下启动成功没有
service mysql start
service mysql status
要是启动不了,看一下配置文件是不是配置你自己的文件路径
- 报这个错是因为没有配置大小写,回去配置vim /etc/my.cnf,加一行大小写配置
- 也有可能你没有data的权限
vim /etc/my.cnf
lower_case_table_names = 1
chmod -R 755 /usr/MYSQL/mysql-8.0.39/data
配置软连接,可以全局使用mysql命令
- 一般来说你的第一次进入,使用的临时密码
- 去指定文件中找临时密码