linux 安装mysql-8.0.20 (实战记录)
安装前先确认一下你的机器上是否已经安装过mysql,有的清理干净,没有则直接进入安装步骤,下面将会记录一下自己的整个安装过程以及遇到的问题和解决方法。
我的系统是:CentOS Linux release 7.5.1804 (Core) 内核:3.10.0-862.11.6.el7.x86_64
安装前的系统确认:
1、检查是否已经安装过mysql : rpm -qa | grep mysql
如果环境中有遗留mysql则执行删除命令:rpm -e --nodeps mysql-xxxxxxxxx
2、查询遗留的mysql设置或命令,执行两条命令:
whereis mysql
find / -name mysql
如通过上述两条命令发现有遗留,则执行清除命令,将所有查到的mysql都删除感觉 :rm -rf xxx xxx
下面开始正式的安装了,不要眨眼错过每一步哦!
1、检查mysql用户组和用户是否存在,如果没有,则创建,有的话可以不用添加,如果已经忘记密码等则保险期间还是删除重新创建吧
查看是否存在mysql用户的命令:
cat /etc/group | grep mysql
cat /etc/passwd |grep mysql
增加 mysql 用户的命令:
groupadd mysql
useradd -r -g mysql mysql
2、从官网下载是用于Linux的Mysql安装包
官网下载8.20版本mysql的地址:https://downloads.mysql.com/archives/community/
两种方法下载:
第一:如果你的linux 系统有外网,则直接通过命令下载到linux系统上:wget https://dev.mysql.com/get/Downloads/MySQL-8.0.20/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
第二:通过浏览器打开网页,按照图片的执行,点击"DownLoad"
3、开始解压、安装
tar -xvf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
mv mysql-8.0.20-linux-glibc2.12-x86_64 /usr/local/mysql
4、更改mysql目录下所有的目录及文件夹所属的用户组和用户,以及权限
mysql文件夹要配置为755的权限,如果不是则执行命令:
chmod -R 755 /usr/local/mysql
5、找一个目录来存储mysql的数据,如果你的数据量大,记得要找个大点的盘和目录,我的是在/data目录下
mkdir -p /data/mysql
此时一般网友的操作步骤是给这个目录设置了mysql权限:chown mysql:mysql -R /data/mysql
我在执行和调试过程中,遇到了mysql.sock无法找到和其他无法写的权限等问题,所以为给这个目录权限设置为:chmod 777 /data/mysql
这应该和我的调试有关系,也不必都设置为777权限,,当你遇到无法解决的读写文件问题时可以这么设置
4、设置配置文件,编译/etc/my.cnf , 内容如下
[mysqld]
#datadir=/var/lib/mysql
#socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
#symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
bind-address=127.0.0.1
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
#socket=/data/mysql/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
##character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true
[mysqld_safe]
#log-error=/var/log/mariadb/mariadb.log
log-error=/data/mysql/mariadb.log
#pid-file=/var/run/mariadb/mariadb.pid
pid-file=/data/mysql/mariadb.pid
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
注意、注意、注意,很重要,补充知识:
不要将配置文件中的socket=/tmp/mysql.sock 改为你自定义目录文件的路径,如:#socket=/data/mysql/mysql.sock,非常容易出现一下图片中的错误,处理起来可能费时间和精力,我也像网上说的使用自己的目录且给/tmp/mysql.sock 建立了软连接也不管用,所以还是建议按照我的配置去配置,不要改socket的目录了。
当然出现上述错误后,你又想快速的访问mysql数据库(数据库已经初始化好后的步骤),也可以执行如下命令先使用着
执行连接命令:./mysql -uroot -h 127.0.0.1 -p
5、初始化mysql,一定要记住初始化输出日志末尾的密码(数据库管理员临时密码)
./mysqld --initialize --user=mysql --datadir=/data/mysql --basedir=/usr/local/mysql
如果屏幕上没有打印则去日志文件中查看初始化完成后的临时密码:
cat /data/mysql/mysql.err
6、测试启动mysql服务器
先将mysql.server放置到/etc/init.d/mysql中
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
service mysql start
ps -ef | grep mysql
7、修改初始密码
首先登录mysql,密码是上述初始化时,日志最后一行生成的那个临时密码
./mysql -u root -p #bin目录下
./mysql -uroot -h 127.0.0.1 -p
8、修改初始化的密码,设置自己的密码
注意:对于8.0.20版本的mysql,使用以前的修改密码的命令不可用,无法使用set password命令,会出现以下错误:
怎么办呢,经过验证,需要使用alert命令去修改,执行命令:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxxxxxx';
FLUSH PRIVILEGES;
9、开放远程连接(开通后你的mysql就可以让其他远端客户端访问了),执行命令:
use mysql;
update user set user.Host='%' where user.User='root';
flush privileges;
到此,你的mysql已经安装成功,开心的使用去吧。
另:如有环境依赖上的问题,比如执行初始化命令时遇到系统提示无相关库时,可以参考以下网友的解决方法,我没有遇到此类问题所以就不多着叙述:
https://www.jianshu.com/p/276d59cbc529
补充:
mysql 5.7.31版本下载路径:
https://dev.mysql.com/downloads/mysql/5.7.html#downloads
下载后安装步骤同上,注意 改密码那个步骤略微有不同。
1、linux上执行下载命令:wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
2、网页上的下载如下所示:
弹出以下页面: