MySQL8.0-Linux下安装

1.准备linux(Centos7)系统

1.1修改hostname

[root@centos ~]# vim /etc/hostname

重启系统生效 

[root@centos ~]# reboot

 1.2 修改ip地址并重启网络服务

[root@centos_03 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 
[root@centos_03 ~]# service network restart
Restarting network (via systemctl):                        [  确定  ]

   按照自己的来, 如下是我的配置(虚拟机,采用NAT模式)

BOOTPROTO="static"
IPADDR=192.168.150.130
GATEWAY=192.168.150.2
DNS1=192.168.150.2

  修改BOOTPROTO 为 static

  添加IPADDR, GATEWAY, DNS1

1.3 卸载自带jdk,自带数据库

[root@centos_03 ~]# rpm -qa|grep jdk

[root@centos_03 ~]# rpm -e --nodeps java-1.8.0-openjdk-headless

[root@centos_03 ~]# rpm -e --nodeps java-1.8.0-openjdk

[root@centos_03 ~]# rpm -e --nodeps java-1.7.0-openjdk-headless

[root@centos_03 ~]# rpm -e --nodeps java-1.7.0-openjdk
[root@centos_03 ~]# rpm -qa | grep mari

[root@centos_03 ~]# rpm -e --nodeps mariadb-libs

[root@centos_03 ~]# rpm -e --nodeps marisa

1.4 安装jdk(只安装数据库可跳过)

使用rz命令或xshell工具将jdk上传到/opt/software/ 下

tar -zxvf jdk-8u261-linux-x64.tar.gz -- 解压

vim /etc/profile -- 配置环境变量

# jdk1.8

export JAVA_HOME=/opt/module/jdk1.8 export PATH=$JAVA_HOME/bin:$PATH

source /etc/profile -- 重新加载配置

2. 安装MySQL8.0

2.1 下载MySQL8.0(二进制包)

https://dev.mysql.com/downloads/mysql/

 2.2 上传至linux, 并解压到/usr/local/ 目录下

[root@centos_03 software]# tar xvf mysql-8.0.24-linux-glibc2.12-x86_64.tar.gz
[root@centos_03 software]# mv mysql-8.0.24-linux-glibc2.12-x86_64 /usr/local/

2.3 创建MySQL组和MySQL用户

 因为用户只用于所有权目的,而不是登录目的,所以useradd命令使用-r和-s /bin/false选项来创建一个对服务器主机没有登录权限的用户。如果您的useradd不支持这些选项,请忽略它们。

2.4 创建mysql目录的软连接

[root@centos_03 local]# ln -s /usr/local/mysql-8.0.24-linux-glibc2.12-x86_64 mysql

 2.5 进入mysql,创建mysql-files文件夹,改变用户和组,并授权

[root@centos_03 mysql]# cd /usr/local/mysql
[root@centos_03 mysql]# mkdir mysql-files
[root@centos_03 mysql]# chown mysql:mysql mysql-files/
[root@centos_03 mysql]# chmod 750 mysql-files

 2.6 以mysql用户初始化MySQL

[root@centos_03 mysql]# bin/mysqld --initialize --user=mysql

 将日志中打印的临时密码复制出来

2.7 生成公钥私钥

[root@centos_03 mysql]# bin/mysql_ssl_rsa_setup

2.8 启动MySQL并修改初始密码

[root@centos_03 mysql]# bin/mysqld_safe --user=mysql &

 Ctrl + C 打断进程, 进入控制台.

查看MySQL进程

[root@centos_03 mysql]# ps -ef|grep mysql

发现正常运行. 

登录并修改密码(2.6中的临时密码)

[root@centos_03 mysql]# bin/mysql -u root -p
Enter password: 

 修改root用户密码,改为''admin''

mysql> alter user root@localhost identified by 'admin';

退出

 测试新密码,登录成功

2.9. 将support-files文件夹下mysql.server服务复制到 /etc/init.d/ 文件下并改名为mysql

[root@centos_03 mysql]# cp support-files/mysql.server /etc/init.d/mysql

2.10 配置环境变量

停止MySQL服务

[root@centos_03 mysql]# /etc/init.d/mysql stop

 编辑/etc/profile文件

文件末尾加上mysql的配置,保存并退出

# mysql8.0
export MYSQL=/usr/local/mysql
export PATH=$MYSQL/bin:$PATH

 重新加载配置文件

[root@centos_03 mysql]# source /etc/profile

重新启动MySQL服务(三种方式)

[root@centos_03 /]# service mysql start

 或者使用命令/etc/init.d/mysql start 也可以启动服务

 或者重启系统后, 使用 systemctl start mysql 命令也可以启动mysql服务

登录MySQL

[root@centos_03 /]# mysql -u root -p
Enter password:

 现在已经可以在系统任意位置使用 mysql 命令登录了, 不再需要在mysql目录使用 bin/mysql 命令登录了.

2.11 添加MySQL开机自启动

[root@centos_03 ~]# chkconfig --add mysql
[root@centos_03 ~]# chkconfig --list | grep mysql

第一个命令是将mysql服务添加进自启动

第二个命令是查看是否添加成功,注意要保证''3''和''5''状态下为''开''即可

注意 : mysql服务 需要在 /etc/init.d/ 下有才行.(步骤2.9)

2.12 开放3306端口

[root@centos_03 ~]# firewall-cmd --permanent --add-port=3306/tcp
[root@centos_03 ~]# firewall-cmd --reload
[root@centos_03 ~]# firewall-cmd --query-port=3306/tcp

 第一个命令开放3306端口

 第二个命令重新载入使之生效

 第三个命令查看端口是否开放

2.13 修改MySQL配置文件

MySQL的配置文件为my.cnf, 默认放在/etc/ 下.

但是, 

原因是我们的二进制安装方式, MySQL不提供配置文件, 需要我们自己创建.

[root@centos_03 etc]# vim my.cnf
[mysqld]
port=3306
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
log_error=error.log

重启MySQL服务

[root@centos_03 etc]# service mysql restart

以后如果我们要修改数据库的配置直接在/etc/my.cnf 里面修改即可.

2.14 远程连接数据库

现在为止我们已经安装好了MySQL服务,

并添加自启动,

开放了3306端口,

且在linux上可以连接上MySQL服务,  现在我们试试远程使用连接工具试试.

 发现使用root用户连接失败.

原因:

 在系统用户表中我们发现root用户的连接方式为localhost 只能本地连接, 因此远程使用root用户不能登录.

解决:

 将root 的连接方式修改为 % , 表示任何客户端都可以连接.

mysql> update mysql.user set host = '%' where user = 'root';

mysql> flush privileges;

 此时已经可以连接成功了

 注意如果还是连接失败

则是远程登录软件版本较老 导致 

解决方式有两种:

1. 升级软件版本至最新版

2. 修改密码加密插件

 在MySQL8.0后, 密码的加密规则为 caching_sha2_password , 在之前的5.7版本及以前版本中为mysql_native_password , 现在我们将加密方式修改为以前的方式即可.

修改SQL语句

mysql> alter user root@'%' identified with mysql_native_password by 'admin';

 修改完成后;

 现在再测试, 是可以连接成功的!

简单my.cnf配置

[client]
#user=root
#password=admin

[mysql]
#prompt=(\\u@\\h) [\\d]>\\_

# 注意: mysql的安装目录和数据存储目录分开来
[mysqld]
port=3306
user=mysql
basedir=/usr/local/mysql-8.0.24-linux-glibc2.12-x86_64
datadir=/mydata/mysql_test_data
log_error=error.log

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值