1、去官网下载deb文件
https://dev.mysql.com/downloads/repo/apt/
2、安装deb包
输入root密码后,会有交互式界面如下:
不需要动,按tab键移动到第五行中间的OK,回车。
回车后报apt-key之类的警告,不用管。 警告如下:
3、刷新MySQL源
sudo apt-get update
4、在虚拟机中安装mysql8,不要使用ssh工具(比如secureCRT)连接虚拟安装,因为安装过程有基于shell的图形界面,ssh工具可能有不支持字符集。
sudo apt-get install mysql-server
安装过程中让输入密码,我用secureCRT安装,安装过程看到一些乱码,这处的乱码其实是在让我输入密码和确认密码。
在虚拟机中直接安装可以看到交互式界面,让你输入两次密码
这里重点来了,MySQL8的密码要必须是包含大小写和特殊字符的
如果你不这么设置,后面比如让别的IP访问,都是不能访问到的,但是装MySQL的机器可以正常访问。
如果出现这种情况,参考这篇文章https://blog.csdn.net/yi247630676/article/details/80352655
5、mysql启动停止及状态查看
sudo service mysql status
sudo service mysql stop
sudo service mysql start
6、一些重要的文件存放位置,重装的时候需要清除这些地方的mysql文件夹及文件
-
All configuration files (like
my.cnf
) are under/etc/mysql
-
All binaries, libraries, headers, etc., are under
/usr/bin
and/usr/sbin
-
The data directory is under
/var/lib/mysql
7、项目里面配置数据库url的时候,不要配置useSSL=true,要配置成useSSL=false
如果使用SSL,需要安装证书,比较麻烦,开发不要用
8、pom.xml里面驱动包应该引用如下:
<mysql.version>8.0.11</mysql.version>
9、如果项目配置里面配置了驱动,需要使用
com.mysql.cj.jdbc.Driver
10、SpringBoot2.1.0.RELEASE版本(其他的没试,只是记录这个事情),只支持com.mysql.cj.jdbc.Driver驱动,即mysql6.x以上版本。
源码在org.springframework.boot.jdbc.DatabaseDriver类中
/**
* Find a {@link DatabaseDriver} for the given URL.
* @param url the JDBC URL
* @return the database driver or {@link #UNKNOWN} if not found
*/
public static DatabaseDriver fromJdbcUrl(String url) {
if (StringUtils.hasLength(url)) {
Assert.isTrue(url.startsWith("jdbc"), "URL must start with 'jdbc'");
String urlWithoutPrefix = url.substring("jdbc".length())
.toLowerCase(Locale.ENGLISH);
for (DatabaseDriver driver : values()) {
for (String urlPrefix : driver.getUrlPrefixes()) {
String prefix = ":" + urlPrefix + ":";
if (driver != UNKNOWN && urlWithoutPrefix.startsWith(prefix)) {
return driver;
}
}
}
}
return UNKNOWN;
}
这个类是枚举类,values()方法返回枚举成员,其中mysql或者MARIADB对应的是
/**
* MySQL.
*/
MYSQL("MySQL", "com.mysql.cj.jdbc.Driver", "com.mysql.cj.jdbc.MysqlXADataSource",
"/* ping */ SELECT 1"),
/**
* Maria DB.
*/
MARIADB("MySQL", "org.mariadb.jdbc.Driver", "org.mariadb.jdbc.MariaDbDataSource",
"SELECT 1") {
@Override
public String getId() {
return "mysql";
}
},
资料参考:
https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/#apt-repo-fresh-install