MySQL8.0.0.28数据库安装配置
1. 安装前的准备工作
1.1 确认目前服务器上是否存在MySQL
命令:rpm -qa | grep mysql
说明:若返回空信息,就说明当前环境没有安装MySQL;直接跳到第4步操作后续。
1.2 检查当前环境是否有自带的mariadb数据库
命令:rpm -qa | grep mariadb
说明:若返回空信息,就说明当前环境没有安装mariadb;跳到下面的步骤安装。
若存在mariadb则删除
命令:rpm -e --nodeps 安装包
2. 通过压缩包的方式安装
2.1 下载MySQL安装包
在联网的地方访问mysql下载地址:MySQL :: Download MySQL Community Server (Archived Versions)
参数选择如下:
-
Product Version: 8.0.28
-
Operating System: Linux - Generic
-
OS Version: Linux - Generic (glibc 2.12) (x86, 64-bit)
大家可以在Linux中使用 uname -a的命令查看目前Linux系统的架构和系统信息。根据这个来选择MySQL下载包。
2.2 上传到目标服务器(xftp)
2.3 在服务器解压下载的安装包
tar -xvf mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz
2.4 修改解压后的名称
迁移目录并重命名
mv mysql-8.0.28-linux-glibc2.12-x86_64 /usr/local/mysql
2.5 创建存放数据的目录
mkdir -p /data/mysql
2.6 创建用户用户组,并将创建的用户添加到用户组中
# 创建用户组
groupadd mysql
# 创建用户mysql(mysql)并将用户添加到用户组(mysql)中
useradd -g mysql mysql
2.7 给mysql用户赋予权限
chown mysql:mysql /data/mysql
2.8 修改mysql配置文件(若没有则新建)
vim /etc/my.cnf
新增如下(可以根据自身情况进行配置):
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/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
2.9 安装并初始化mysql
(1)进入mysql安装目录的bin目录
cd /usr/local/mysql/bin
(2)执行如下命令
这个命令是:指定了默认文件,MySQL的安装目录,数据存放位置,用户是mysql
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
2.10 查看mysql默认密码
cat /data/mysql/mysql.err
2.11 先将mysql.server放置到/etc/init.d/mysql中
/etc/init.d 目录通常用于存放启动脚本,这些脚本用于管理系统服务的启动、停止和重启。
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
2.12 启动mysql
service mysql start
2.13 查看MySQL的进程
ps -ef|grep mysql
3. 修改root账号密码
3.1 切换到mysql的安装目录的bin下
cd /usr/local/mysql/bin
3.2 登录mysql
# 输入密码登录
./mysql -u root -p
ps:如果输入上面的看到的密码不能登录或者不想输入密码登录 我们可以在my.cnf中设置跳过密码验证直接登录,在my.cnf添加skip-grant-tables,然后重启mysql,service mysql restart。重启之后输入登录mysql的命令之后,提示输入密码的时候直接回车即可。
3.3 登录成功,使用sql命令修改root账号密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
# 刷新权限
flush privileges;
退出mysql;exit
3.4 验证密码是否修改成功
如果你之前采用了 skip-grant-tables方式,记得一定得将这个在my.cnf中注释。然后重启mysql即可。
(1)注释skip-grant-tables
(2)重启mysql
service mysql restart
(3)登录MySQL
./mysql -u root -p
登录成功,说明密码修改成功。
4. 开启mysql允许远程访问
- 登录MySQL
Ps:在MySQL的安装目录下bin目录使用如下命令
./mysql -u root -p
-
查看所有数据库
show databases; -
切换到mysql数据库
use mysql; -
使用命令开启任何主机都能远程访问MySQL
update user set host=‘%’ where user=‘root’; -
flush privileges;刷新权限
退出mysql;exit
5. 检查安装路径和安装环境是否正常
mysqldump 是 MySQL 提供的一个命令行工具,用于备份和导出 MySQL 数据库。
6. 添加MySQL环境变量
添加环境变量后,便可以在任何目录使用mysql命令
若没有则需要手动添加到环境变量中。
打开profile文件
vi /etc/profile
在最后添加一行
export PATH=$PATH:/usr/local/mysql/bin
重新加载配置文件
source /etc/profile
7. 到此MySQL的安装和基本配置就完成了。
8. 安装配置中异常解决
8.1 今天为创建的root 用户授予相关权限提示如下错误:
mysql> grant all privileges on test.* to root@‘%’ identified ‘123456’;
提示如下错误:ERROR 1064(4200): you have an error in you SQL syntax; **near ‘identified ‘123456’’ at line 1
查询MySQL8 相关授权资料的得知,分配权限不能带密码。
修改后的指令如下:
mysql > grant all privileges on test.* to root@‘%’
提示的错误信息如下:You are not allowed to create a user with GRANT;
产生用户不能授权的原因是mysql 数据库中user 表中的特定用户(root) 的host 的属性值为localhost.
解决办法如下:
登录MySQL
- 使用mysql 数据库
mysql > use mysql;
- 特定用户的host 修改
mysql > update user set host=‘%’ where user=‘root’;
- 指定用户的授权
mysql > grant all privileges on test.* to root@‘%’
在”MyBttis的下载和使用“结尾中有提到如果底层使用的是MySql数据库,那么我们还需要将MySql数据库的驱动.jar包添加到应用程序的类路径中。
9. MySQL8.0 connector JAR包的下载位置
下载地址:MySQL :: Download Connector/J
https://dev.mysql.com/downloads/connector/j/
需在页面中Select Operating System选项中找到Platform Independent点击,会跳转到下载页面;
选择mysql-connector-java-8.0.26.zip下载即可。
注:时间的不同,页面显示的版本可能有所不同
MySQL Product Archives
MySQL Connector/J (Archived Versions)
Please note that these are old versions. New releases will have recent bug fixes and features!
To download the latest release of MySQL Connector/J, please visit MySQL Downloads.
Product Version: 8.0.28
Operating System: Platform Independent
在软件开发的上下文中,General Availability (GA) Releases 通常指的是软件的稳定发行版,也称为正式版或最终版(Final)1。这个版本的软件已经完成了所有的开发工作,经过了充分的测试,并修复了大部分已知的错误(BUG)。GA版本的软件被认为是适合广泛用户使用的,因为它提供了稳定的功能和性能。
相比之下,Archives Product Information 通常指的是存档的产品信息。这可能包括旧版本的软件、文档、更新日志等,这些信息被保留下来供用户参考或下载。Archives Product Information 对于那些需要访问旧版本软件或文档的用户来说非常有用,特别是当新版本软件不再兼容他们的系统或工作流程时。
“Operating System: Platform Independent” 指的是某个软件或应用程序能够在多种不同的操作系统上运行,而不需要针对每个特定的操作系统进行单独的编译或配置。这种软件通常被设计为跨平台(Cross-platform)或可移植(Portable)的,以便它可以在Windows、macOS、Linux等多种操作系统上无缝运行。
下载并解压mysql-connector-java-8.0.28.zip压缩包,会得到一个名为mysql-connector-java-8.0.28的文件夹。
文件夹下包含的文件(底层使用的是MySql数据库,我们需要引入Mysql数据库驱动的核心包):
- Mysql 8.0 的JDBC配置
com.mysql.cj.jdbc.Driver 和com.mysql.jdbc.Driver 这两者到底有什么区别呢?
本质区别:驱动类不同
com.mysql.jdbc.Driver 是 mysql-connector-java 5版本中的
com.mysql.cj.jdbc.Driver 是 mysql-connector-java 6版本及以上中的
以创建MyBatis的核心配置文件为例
<?xml version="1.0" encoding="UTF-8" ?>1.在使用com.mysql.jdbc.Driver时,配置是需要下面这样的:
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC
jdbc.username=root
jdbc.password=root
2.MyBatis在使用com.mysql.cj.jdbc.Driver时,配置是需要下面这样的:
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC
jdbc.username=root
jdbc.password=toot
变化主要在两点, 分别是 , 以及获得连接的URL配置;
注意:
需要指定时区(serverTimezone=UTC)
“jdbc:mysql://localhost:3306/db3?serverTimezone=UTC” 这句话必须设置, 但是设置UTC时间(世界统一时间), 会比北京时间早8个小时, 也就是说,北京2021年9月10日18点的时候,UTC时间为2020年3月20日10点。
如果在中国,serverTimezone=可以选择设置为Asia/Shanghai或者Asia/Hongkong。
以上配置会使得Maven在下载依赖时,优先从阿里云的镜像地址进行下载,从而提高下载速度和效率。
--------------------------------欢迎关注--------------------------------
--------------------------------欢迎关注--------------------------------
在下为编程界一名小学生,在此记录编程路上一些所得,分享点滴技术,探讨人生百态。文章若有不足之处,欢迎批评指正。文章若予您有些许帮助,实属荣幸,望关注,点赞,转发让更多的伙伴看到它。