Linux下mysql安装


版本说明
环境:windows10 hyper
Linux:centos 8.2
mysql:8.0.20

由于博主只是想在本地的虚拟机弄一套环境出来,故没有认真的配置用户组。如配置了用户组,在安装过程中碰到问题的话。大多是文件权限问题,给予用户组权限即可。

下载

方式一:进入mysql历史版本库,选择自己需要的版本下载安装
https://downloads.mysql.com/archives/community
在这里插入图片描述
方式二:服务器有网的话直接wget下载

#下载地址可以在浏览器按f12查看
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz

在这里插入图片描述

压缩包解压

配置my.cnf,

文件 /usr/my.cnf 是mysql的默认配置文件编辑文件。

vim /etc/my.cnf

内容如下:

[mysqld]
bind-address=0.0.0.0
port=3306
user=root
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
# 设置mysql的group_concat长度,默认为1024
group_concat_max_len=102400
# 设置默认sql_mode 去掉了 ONLY_FULL_GROUP_BY
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true

解压、安装mysql

创建mysql数据存储文件夹

mkdir -p /data/mysql

在这里插入图片描述

解压安装文件

tar -xJf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz 

在这里插入图片描述
移动解压后的文件至指定文件夹,

mv /opt/mysql-8.0.20-linux-glibc2.12-x86_64 /usr/local/mysql/

在这里插入图片描述

安装mysql

# 安装
/usr/local/mysql/bin/mysqld --initialize --user=root --datadir=/data/mysql --basedir=/usr/local/mysql
# 查看密码,该mysql.err文件为我们上面my.cnf配置文件里面配置的
cat /data/mysql/mysql.err

在这里插入图片描述

启动mysql

/usr/local/mysql/support-files/mysql.server start

在这里插入图片描述

配置root账号自定义密码

# 登录,此处无法直接使用/usr/local/mysql/bin/mysql操作,故先进入/usr/local/mysql/bin文件夹
# mysql -u 用户名 -p登录密码
cd /usr/local/mysql/bin
mysql -u root -p1m4VWpFPHj=c
# 设置root账号自定义登录密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
# 退出校验登录
\q
mysql -u root -proot

在这里插入图片描述
在这里插入图片描述

设置root账号远程可连接

# 进入mysql文件夹,如果配置了mysql软链接可以跳过此步,直接使用mysql指令登录,类似于windows的环境变量
cd /usr/local/mysql/bin/
# 登录msyql
mysql -u root -proot
# 进入数据库
use mysql
# 重置密码
# update mysql.user set authentication_string=password('新密码') where user='root';
update mysql.user set authentication_string=password('123456') where user='root';
# 修改登录用户设置
update user set host='%' where user='root';
# 刷新缓存,注意,但凡是涉及到数据库角色权限之类的最后一定要执行该指令重新加载权限表,应为mysql角色权限方面默认是有缓存的
flush privileges;

在这里插入图片描述

防火墙开放端口

此时在其他服务器依然是不能连接mysql数据库的,这是由于防火墙的原因,只需要开放数据库端口或者关闭防火墙即可。
在这里插入图片描述
防火墙配置参考链接: https://blog.csdn.net/qq_37809967/article/details/109401618.防火墙设置篇

# 查看防火墙状态
firewall-cmd --state
# 查询端口是否开放
firewall-cmd --query-port=3306/tcp
# 开放3306端口
firewall-cmd --permanent --add-port=33065/tcp
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload

此时已经可以连接数据库
在这里插入图片描述

异常解决

# 异常1,登录的时候报该错误
mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
# 解决方案
sudo ln -s /usr/lib64/libtinfo.so.6.1 /usr/lib64/libtinfo.so.5
# 还是不行的话执行
yum install libncurses*

2020/12/26补充

其实mysql的安装很简单的,找到与服务器匹配的版本。丢上去基本上啥都不用配置就能干起来。毕竟你要想一想,MySQL开源面向全世界的客户。他不可能把自己的基础使用还整的很复杂。下面附加mysql.server的简陋说明

最重要的就是看看配置文件
聊聊我的尝试,
即使不配置my.cnf文件,mysql依然可以直接启动
但是配置都是隐式的,真正上线使用肯定是不够的,就是简简单单的开机自启都有点小问题,就不放出来告诉大家怎么整这个了,还是老老实实配置my.cnf文件把。

#!/bin/sh
# Copyright Abandoned 1996 TCX DataKonsult AB & Monty Program KB & Detron HB
# This file is public domain and comes with NO WARRANTY of any kind

# MySQL daemon start/stop script.

# Usually this is put in /etc/init.d (at least on machines SYSV R4 based
# systems) and linked to /etc/rc3.d/S99mysql and /etc/rc0.d/K01mysql.
# When this is done the mysql server will be started when the machine is
# started and shut down when the systems goes down.
# 大致意思是这个MySQL服务通常放在系统init.d文件夹里面,这样mysql服务就随着
# 系统的启动与关闭,跟着一起启动与关闭

# Comments to support chkconfig on RedHat Linux
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值