centos7下安装mysql8
mysql安装
一、安装包下载
方式一:先下载到本地,再上传到服务器
推荐官方下载地址:https://dev.mysql.com/downloads/mysql/
选择系统版本和系统位数下载就可以了
查看当前系统的 glibc 版本
ldd --version
然后将压缩包通过ftp方式上传到服务器上,可以使用Xftp或者其他的工具。
方式二:直接wget下载(推荐)
在官网上复制下载链接,然后直接使用wget命令下载
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210326080343561.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NTMzOTY4,size_16,color_FFFFFF,t_70
二、安装mysql到指定目录下
1、解压文件到指定目录下:
tar -xvf mysql-8.0.23-linux-glibc2.17-x86_64-minimal.tar.xz -C /data/
2、文件夹重命名:
mv mysql-8.0.23-linux-glibc2.17-x86_64-minimal mysql
3、新建data目录用于存放数据
mkdir -p /data/mysql/data
4、创建 mysql 用户组和 mysql 用户
groupadd mysql
useradd -g mysql mysql
5、改变mysql目录权限
chown -R mysql.mysql /data/mysql/
6、初始化数据库
- 如果出现目录不存在,查看是否已经更改了目录权限!!!
- 需要在mysql根目录下执行!!!
bin/mysqld --initialize --user=mysql --basedir=/data/mysql --datadir=/data/mysql/data
成功后,系统会生成一个临时的密码,务必要记录下来,下面链接数据库要用到。
7、修改mysql配置 /etc/my.cnf
新建目录
mkdir -p /var/log/mysql/mariadb/
修改my.cnf
[mysqld]
basedir=/data/mysql
datadir=/data/mysql/data
socket=/data/mysql/mysql.sock
character-set-server=utf8
port=3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
[client]
socket=/data/mysql/mysql.sock
default-character-set=utf8
[mysqld_safe]
log-error=/var/log/mysql/mariadb/mariadb.log
pid-file=/var/log/mysql/mariadb/mariadb.pid
log_bin=on
slow_query_log=1
slow-query-log-file=/var/log/mysql/mysql-slow.log
long_query_time=1
如不添加 [client] 开启服务输入密码后将出现下列错误
Can 't connect to local MySQL server through socket '/tmp/mysql.sock '(2)
8、设置开机自启
1、将/support-files/mysql.server 拷贝为/etc/init.d/mysql并设置运行权限,这样就可以使用service mysql命令启动/停止服务
cp /data/mysql/support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql //添加可执行权限。
chkconfig --add mysql // 注册启动服务
chkconfig --list mysql //查看是否添加成功
三、开启远程连接
1、启动服务
# 启动
service mysql start;
# 查看启动状态
service mysql status;
# 停止
service mysql stop;
若启动报错
mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log'
执行以下操作
mkdir /var/log/mariadb
touch /var/log/mariadb/mariadb.log
# 用户组及用户
chown -R mysql:mysql /var/log/mariadb/
/data/mysql/support-files/mysql.server start
2、修改密码
mysql -uroot -p //登录mysql,输入初始化过程中生成的临时密码。
修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
3、允许远程连接
use mysql
update user set host ='%' where user='root';
FLUSH PRIVILEGES;
四、开启防火墙
firewall-cmd --zone=public --list-ports 查看所有打开的端口
firewall-cmd --zone=public --add-port=80/tcp --permanent 开启一个端口,添加--permanent永久生效,没有此参数重启后失效
firewall-cmd --permanent --add-port=80/tcp 开放端口80
firewall-cmd --permanent --remove-port=80/tcp 移除端口80
firewall-cmd --reload 重启防火墙,修改后重启防火墙生效
firewall-cmd --query-port=6379/tcp 查看端口号是否开启
五、附录
1、未找到命令mysql
若出现未找到命令,做一个软连接到mysql的安装目录下:
ln -s /data/mysql/bin/mysql /usr/bin
2、修改密码不生效、重置密码
- 设置mysql为无密码启动
修改文件 /etc/my.cnf
在[mysqld]的段中加上一句:skip-grant-tables保存并退出vi。
- 重新启动mysqld
//重启mysql
service mysqld restart
//进入mysql
mysql -u root
//设置密码: ‘root’@’%’ ‘root’等于user表里的user,’%’ 等于user表里的host
ALTER USER ‘root’@’%’ IDENTIFIED BY ‘新密码’ PASSWORD EXPIRE NEVER;
ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘新密码’;