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