linux 安装 mysql8.0 两台

安装第一台,一般用到一个机器安装第二台的时候,一般机器上已经有一台mysql了,所以,如果你没有可以参考下面链接安装,链接没有指定mysql配置文件地址,因为一般大家都是这样子装的,所以,为了能同样流程在正式机器安装成功,所以我没有指定配置文件,保证测试机和正式一样的环境

linux安装 mysql8.0

------------------------------------------------------------------现在安装第二个mysql----------------------------------------------------------------------

一定要先先看一下当前系统版本再下载对应的包,我开始没看,然后就一堆麻烦:

cat /proc/version
Linux version 3.10.0-862.14.4.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC) ) #1 SMP Wed Sep 26 15:12:11 UTC 2018

64位就下载对应64位

1.先下载 

可以去官网直接下载,

mysql-8.0.17-linux-glibc2.12-x86_64.tar.xz下载链接

我是直接从官网下载的,因为我安装的服务器之前已经安装了一个mariadb了,所以我现在使用另外一个端口3308

将下载的文件移到/usr/local 目录

# 切换到当前目录

cd /usr/local

tar -xvf mysql-8.0.17-linux-glibc2.12-x86_64.tar.xz

开始用的 tar -zxvf mysql-8.0.17-linux-glibc2.12-x86_64.tar.xz,查资料说这个压缩包没有用gzip格式压缩,所以不用加z参数

ls,查看文件夹 

然后重命名一下解压后的文件:

mv mysql-8.0.17-linux-glibc2.12-x86_64 mysql3308

 

新建data目录,用于存放数据

cd mysql3308/

#新建mysql用户、mysql用户组,如果之前已经建立过,就不用建立了

groupadd mysql

#给mysql添加用户 为 mysql

useradd mysql -g mysql

#将/usr/local/mysql的所有者及所属组改为mysql

chown -R mysql:mysql /usr/local/mysql3308/

chmod -R 755 /usr/local/mysql3308/

配置参数

在mysql3308下新增文件夹data,var,etc备用,etc是用来放配置文件的

ls 查看一下当前文件目录

将没有的文件夹添加一下

mkdir data;

mkdir var

mkdir etc

 

 创建数据库配置文件,一般为my.cnf 。其实在根目录  /etc/my.cnf 有这个文件,所以只需要复制就行了,如果根目录下没有的话,就需要使用touch命令创建新的空文件

ls /etc

cp /etc/my.cnf etc/

ls etc/

编辑刚刚复制的 my.cnf

vi etc/my.cnf 

[mysqld]
basedir = /usr/local/mysql3308
datadir = /usr/local/mysql3308/data
socket = /usr/local/mysql3308/tmp/mysql.sock
port = 3308

[client]
socket = /usr/local/mysql3308/tmp/mysql.sock
default-character-set=utf8

[mysqld_safe]
log-error=/usr/local/mysql3308/mysql-log/error.log
pid-file=/usr/local/mysql3308/mysql.pid

#如果/usr/local/mysql3308/目录下没有tmp文件,手动创建,并且配置权限:

mkdir tmp
chmod 777 ./tmp

mkdir mysql-log

chmod 777 ./mysql-log

cd mysql-log

touch error.log

安装依赖包--如果已经安装过就不要执行了,虽然执行也没啥问题,会再次检查一遍

yum -y install make gcc-c++ cmake bison-devel ncurses ncurses-devel libaio-devel

指定刚刚编写的配置文件初始化:a/NRxfzh;87p

要在mysql3308 文件夹下面执行:

cd /usr/local/mysql3308

./bin/mysqld --defaults-file=/usr/local/mysql3308/etc/my.cnf --initialize --user=mysql

#这个命令和mysql5.7之前的命令不一样了,之前命令是:bin/mysql_install_db --user=mysql,但是之后的版本已经被#mysqld --initialize替代

#mysql5.7版本之上会初始化话一个密码,在这里要记住这个初始化密码 Y_Bhf!hjo0k0,在下面初次登录会用上。 

2019-09-17T03:01:00.156712Z 0 [System] [MY-013169] [Server] /usr/local/mysql3308/bin/mysqld (mysqld 8.0.17) initializing of server in progress as process 1554
2019-09-17T03:01:05.651404Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Y_Bhf!hjo0k0
2019-09-17T03:01:07.114536Z 0 [System] [MY-013170] [Server] /usr/local/mysql3308/bin/mysqld (mysqld 8.0.17) initializing of server has completed

./bin/mysqld_safe --defaults-file=/usr/local/mysql3308/etc/my.cnf --user=mysql &

#打开当前mysql的启动文件

一定要确保这里改正确,否则会报错:Starting MySQL....The server quit without updating PID file[FAILED]ocal/mysql3308/data/iZ2zeborh4vm8ozw6k3j07Z.pid).

vi support-files/mysql.server 

指定地址和配置文件的位置:

改1:并删掉下面的conf=/etc/my.cnf

basedir=/usr/local/mysql3308
datadir=/usr/local/mysql3308/data
conf=/usr/local/mysql3308/etc/my.cnf

改2:加 extra_args="-c $conf"

改3 --增加绿色部分

$bindir/mysqld_safe --defaults-file="$conf" --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null &

 

 

support-files/mysql.server start

 

查看是否已经启动起来 

netstat -ntlp

如图,3308,已经启动起来了

#将3308 mysql加入服务

cp /usr/local/mysql3308/support-files/mysql.server /etc/init.d/mysql3308

#开机自启

chkconfig --add mysql3308

显示服务列表

chkconfig --list

#如果3,4,5都是开的就说明是自启设置成功

 

重启数据库的命令:/etc/init.d/mysql3308 restart

访问mysql:

第二个数据库必须使用socket进入,否则默认为第一个数据库。因为配置了全局环境变量

cd bin/

mysql -uroot -p -h 127.0.0.1 --socket=../tmp/mysql.sock --port=3308

输入初始化的密码:a/NRxfzh;87p

alter user 'root'@'localhost' identified by '111111';

flush privileges;

远程连接用户设置:

mysql -uroot -p -h 127.0.0.1 --socket=../tmp/mysql.sock --port=3308
use mysql;
select 'host' from user where user='root';
update user set host = '%' where user ='root';
flush privileges;
select 'host' from user where user='root';

然后将阿里云安全组防火墙3308 ,打开,使用navcat远程连接

如上图所示,即为安装cheng

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值