Linux下安装mysql8(tar包)
场景
最近陆续学习了很多东西,其中在为hive装mysql以管理源数据时,我装了两天mysql8都没有成功,网上教程太多,有的是rpm,有的是yum,而我下载的包是bin目录形式的tar包,期间我遇到了各种各样的问题,像my.cnf缺失,找不到mysql.sock等等。后来看了官网的文档,又结合众多说法不一的教程,成功以tar包形式安装了5.7.33,我又新建了一个虚拟机试了一下mysql8,也成功了,记录如下。
环境准备
1 首先linux要能正常工作,附上我的原点机
2 下载mysql,推荐直接去官网下载,靠谱
3 卸载mariadb ,这个是centos集成的伪mysql,一般初始都带这个家伙,现在要装mysql必须把它干掉,同理如果你之前曾经安装过mysql,也要进行卸载。
rpm -qa | grep mariadb
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
4 没有mysql组和用户的话需要添加
groupadd mysql
useradd -r -g mysql mysql
安装
1 上传,解压,将tar包解压到你指定的位置,修改一下主目录的名字,我这里指定在/opt/module下,名字就叫mysql,然后在这个目录下新建目录 data,修改整个mysql目录的文件权限。
tar xvf mysql-8.0.23-linux-glibc2.12-i686.tar.xz -C /opt/module/
mv mysql-8.0.23-linux-glibc2.12-i686 mysql
cd /opt/module/mysql
mkdir data
chown -R mysql:mysql /opt/module/mysql/
2 这里就来解决没有my.cnf的问题:随便找个地方,自己新建一个my.cnf文件,写入以下内容,然后复制到etc下。推荐到support-file里去写这个文件,这个文件夹本身就是一些杂项文件的目录。
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
basedir = /opt/module/mysql
datadir = /opt/module/mysql/data
port = 3306
socket = /tmp/mysql.sock
character-set-server=utf8
log-error = /opt/module/mysql/data/mysqld.log
pid-file = /opt/module/mysql/data/mysqld.pid
3 初始化mysql,这个过程需要一个依赖我没有,忘记叫什么名字了,反正你缺什么就下什么就对了。
bin/mysqld --initialize --user=mysql --basedir=/opt/module/mysql/ --datadir=/opt/module/mysql/data/
4 初始化完成之后立刻查看日志,保存密码,日志的最后有root的初始密码,保存好,一会登录要用
tail -1000f /opt/module/mysql/data/mysqld.log
5 将启动文件复制到etc下的init.d目录中
cp support-files/mysql.server /etc/init.d/mysql
6 启动服务
service mysql start
7 登录客户端,输入刚才保存的密码
bin/mysql -u root -p
8 设置新的密码
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘yournewpassword’;
flush privileges;
ojrk。