<————————————分 隔 符————————————————>

简单安装步骤

  1. 创建my.ini配置文件

my.ini内容:

[client]
# 设置mysql客户端默认字符集
default-character-set=utf8

[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录,【此为更改项】
basedir=C:\\web\\mysql-8.0.11
# 设置 mysql数据库的数据的存放目录,如果目录里没有,必须自己创建个空data文件夹,否则可能报错,【此为更改项】
# datadir=C:\\web\\sqldata
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#是否开启大小写敏感,1表示启用,0表示不启用
lower_case_table_names=1

  1. 管理员方式启动cmd

略....

  1. cd 进 mysql 的 bin 目录

略....

  1. 初始化 mysql、获得初始化密码

初始化mysql:

mysqld --initialize --console

获得初始化密码:

[Note] [MY-010454] [Server] A temporary password is generated for root@localhost: ?-.!f9Ksz+V!

  1. 装mysql

把随机密码粘贴到别处,重开一个 cmd。

mysqld install

  1. 启动mysql

net start mysql

  1. 修改密码

如果初始密码弄掉了,就把 data 里的数据全删。重新回到初始化数据库的步骤。 (1)进mysql:

mysql -u root -p

(2)改密码:

set password="root";

安装完毕

拓展项:

(1)移除原来的MySQL服务:```mysqld -remove MySQL```


--------------分隔符----------

报错1

C:\sql\mysql-8.0.19\bin>mysqld --initialize --console
mysqld: Can't create/write to file 'D:\Tools Class\mysql-8.0.19-winx64\data\is_writable' (OS errno 13 - Permission denied)
2020-02-25T07:28:54.937896Z 0 [System] [MY-013169] [Server] C:\sql\mysql-8.0.19\bin\mysqld.exe (mysqld 8.0.19) initializing of server in progress as process 5040
2020-02-25T07:28:54.938628Z 0 [ERROR] [MY-010338] [Server] Can't find error-message file 'D:\Tools Class\mysql-8.0.19-winx64\share\errmsg.sys'. Check error-message file location and 'lc-messages-dir' configuration directive.
2020-02-25T07:28:54.940795Z 0 [Warning] [MY-013242] [Server] --character-set-server: 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.
2020-02-25T07:28:54.943412Z 0 [ERROR] [MY-010460] [Server] --initialize specified but the data directory exists and is not writable. Aborting.
2020-02-25T07:28:54.943442Z 0 [ERROR] [MY-013236] [Server] The designated data directory D:\Tools Class\mysql-8.0.19-winx64\data\ is unusable. You can remove all files that the server added to it.
2020-02-25T07:28:54.954601Z 0 [ERROR] [MY-010119] [Server] Aborting
2020-02-25T07:28:54.955582Z 0 [System] [MY-010910] [Server] C:\sql\mysql-8.0.19\bin\mysqld.exe: Shutdown complete (mysqld 8.0.19) MySQL Community Server - GPL.

报错原因:

直接把my.ini配置文件copy虚拟机上,没改basedir和batadir路径。

修改前:

# 设置mysql的安装目录
basedir=D:\\Tools Class\\mysql-8.0.19-winx64
# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错
datadir=D:\\Tools Class\\mysql-8.0.19-winx64\\data

修改后:

# 设置mysql的安装目录
basedir=C:\\sql\\mysql-8.0.19
# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错
datadir=C:\\sql\\mysql-8.0.19\\data

报错2:

在​​C:\Users\Administrator>​​​目录下进mysql数据库,无法识别mysql命令,接着在​​C:\sql\mysql-8.0.19\bin​​目录下才行。

报错原因:

没有mysql的环境变量。

解决方法:

  1. 新建环境变量MYSQL_HOME
    MYSQL_HOME变量可有可无,这里设置MYSQL_HOME变量的原因是方便管理PATH的变量值。如果不设置,则要在PATH里添加MYSQL_HOME变量的内容。

变量名:MYSQL_HOME
变量值:C:\sql\mysql-8.0.19

  1. 在PATH环境变量里添加目录参数

变量名:PATH
变量值:%MYSQL_HOME%\bin;

解决后

重启cmd

C:\Users\Administrator>mysql -u root -p
Enter password: ****


报错1130:

物理机Naviecat连接虚拟机mysql时,报错1130

报错原因:

没有远程连接权限

解决方法:

增加mysql系统库里的host参数,添加权限

解决步骤:

  1. 进mysql,选择mysql系统库

略....

  1. 增加参数,添加权限

update user set host = '%' where user ='root';

  1. 刷新权限表

flush privileges;

  1. 查看是否添加成功

select Host,User,plugin from mysql.user;


报错2059和报错1251

报错原因:

版本不对应,在老版本里,使用 caching_sha2_password加密方式。

解决方法:

把加密方式改为mysql_native_password

解决步骤:

  1. 进mysql,选择mysql系统库

略....

  1. 更改及加密方式
    ‘#User#’@‘#Host#’ IDENTIFIED WITH mysql_native_password BY ‘#密码#’;

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';

手动改自己的用户名字以及登录密码
手动改自己HOST地址,本地的mysql就是LOCALHOST或localhost。

  1. 查看更改是否成功

select Host,User,plugin from mysql.user;

【前提需要把root权限开启。用报错1130的解决方法。新版本加密方式是caching_sha2_password】

<————————————————分 隔 符————————————————>

Win10装SQL_Server(和Eclipse连接Server的记录)数据库及报错记录

安装过程可借鉴​​https://www.cnblogs.com/dunitian/p/8044774.html


Eclipse连接SQL_Server的记录是另外做的,不知道放哪才放这儿的。

package com.fossil.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class SqlServerDao {

/* 设置常量,方便以后更改 */
static final String JDBC_DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
static final String DB_URL = "jdbc:sqlserver://localhost:1433;DatabaseName=Fossil";
static final String USER = "ADMINISTRATOR";
static final String PASSW = "";


/* 接着加载驱动 */

public static void main(String[] args) {
// TODO Auto-generated method stub
/* 设置常用对象 */
Connection con = null;
Statement sta = null;
ResultSet rs = null;

try {
Class.forName(JDBC_DRIVER);
con = DriverManager.getConnection(DB_URL, USER, PASSW);
sta = con.createStatement();
System.out.println("连接成功");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("报错101");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("报错102");
}
}
}
返回:
com.microsoft.sqlserver.jdbc.SQLServerException: 用户 'ADMINISTRATOR' 登录失败。 ClientConnectionId:02dc1d68-4890-4e57-bf79-d3f3e37c7e95
报错102

原来如果SQL_Server用Windows身份验证的话,是不要用户名和密码参数,所以改成

con = DriverManager.getConnection(DB_URL);

接着run

返回:
警告: Failed to load the sqljdbc_auth.dll cause :- C:\Windows\System32\sqljdbc_auth.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform
com.microsoft.sqlserver.jdbc.SQLServerException: 没有为集成身份验证配置驱动程序。

JDBC 驱动程序 API 参考:https://docs.microsoft.com/zh-cn/sql/connect/jdbc/reference/jdbc-driver-api-reference?view=sql-server-ver15

在 Windows 上通过集成身份验证进行连接的官方解释【​​网址​​】:

DBC 驱动程序支持通过 integratedSecurity 连接字符串属性在 Windows 操作系统上使用“类型 2”集成身份验证。 若要使用集成身份验证,请将 mssql-jdbc_auth-<version>-<arch>.dll 文件复制计算机中 Windows 系统路径下的 JDBC 驱动程序安装目录中。

弄完之后不知道为什么并没有,然后又找到CSDN里博主里相似的办法【​​eternal_truth博主​​ 】。

文件名

Download Link

大小

chs\license60.txt

​单击此处手动下载​

9 KB

sqljdbc_6.0.8112.200_chs.exe

​单击此处手动下载​

2.3 MB

sqljdbc_6.0.8112.200_chs.tar.gz

​单击此处手动下载​

2.1 MB

弄了有点久,算了,改成SQL验证算了。

先装个SQLServer管理软件,​​下载官方版​/​浏览网站​​。

改身份验证的方法网络上有,略过;​​点击浏览【周江霄 】的博文​

回首Eclipse项目居然又开始报错了,像这样

Win10装MySQL数据库及报错记录_mysql

原因很简单,之前Build Path一个mybatis.jar删除的时候没把libraries里的删咯。删了就行

Win10装MySQL数据库及报错记录_sql_02Run的时候再次​​​没有为集成身份验证配置驱动程序​​的错,检查后发现居然是把x86和x64弄混😔。

改过来之后连接成功。

<—————— 分 隔 符 ————————>

报错记录1:Error code 0x858C001B报错

报错原因:

Win10系统语言包冲突。SQL使用中文。我的电脑使用English(US)语言包。

解决方式:

过程比较简单,参考网址​​​https://jingyan.baidu.com/article/6f2f55a17316fbb5b83e6c66.html​​​ 。另外如果在“Add a language”列表上有“中文(中华人民共和国)”语言包,仍然报错,那就重装“中文(中华人民共和国)”语言包。重装方法也很简单,随意添加一个语言包,就能卸载掉“中文(中华人民共和国)”语言包,接着再添加“Add a llanguage”“中文(中华人民共和国)”语言包,最后重启。
Win10装MySQL数据库及报错记录_sql_03
--------分隔符-----------------

前言 :在使用sql查询where时,出现


摘要 : MySql 数据库字符编码

之前用​​​set character_set_client = utf8;​​命令把编码全设置成utf8,重启之后全失效,这是我设置前的编码

+--------------------------+---------------------------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------------------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | utf8mb4 |
| character_set_system | utf8 |
| character_sets_dir | C:\Program Files\MySQL\MySQL Server 8.0\share\charsets\ |
+--------------------------+---------------------------------------------------------+
8 rows in set, 1 warning (0.01 sec)
mysql> status
--------------
mysql Ver 8.0.19 for Win64 on x86_64 (MySQL Community Server - GPL)

Connection id: 8
Current database:
Current user: root@localhost
SSL: Cipher in use is TLS_AES_256_GCM_SHA384
Using delimiter: ;
Server version: 8.0.19 MySQL Community Server - GPL
Protocol version: 10
Connection: localhost via TCP/IP
Server characterset: utf8
Db characterset: utf8
Client characterset: gbk
Conn. characterset: gbk
TCP port: 3306
Binary data as: Hexadecimal
Uptime: 6 min 22 sec

Threads: 2 Questions: 6 Slow queries: 0 Opens: 115 Flush tables: 3 Open tables: 35 Queries per second avg: 0.015
--------------
character_set_client    主要用来设置客户端使用的字符集。
character_set_connection 主要用来设置连接数据库时的字符集,如果程序中没有指明连接数据库使用的字符集类型则按照这个字符集设置。
character_set_database 主要用来设置默认创建数据库的编码格式,如果在创建数据库时没有设置编码格式,就按照这个格式设置。
character_set_filesystem 文件系统的编码格式,把操作系统上的文件名转化成此字符集,即把 character_set_client转换character_set_filesystem, 默认binary是不做任何转换的。
character_set_results 数据库给客户端返回时使用的编码格式,如果没有指明,使用服务器默认的编码格式。
character_set_server 服务器安装时指定的默认编码格式,这个变量建议由系统自己管理,不要人为定义。
character_set_system 数据库系统使用的编码格式,这个值一直是utf8,不需要设置,它是为存储系统元数据的编码格式。
character_sets_dir 这个变量是字符集安装的目录


有效操作

  1. 在​​[mysqld]​​​里放​​character-set-server=utf8​​​更改​​| character_set_server | utf8 |​​的编码方式

mysql是命令行客户端程序
mysqld 是服务端程序


失效操作:

  1. 使用​​mysql> set character_set_client = utf8;​​命令虽然能更改字符集,但是并不治本,重启服务后失效
  2. 只在​​[client]​​​里放​​default-character-set=utf8​​,无效。与我在《win10安装MySQL数据库和MyServer数据库及其报错记录》博客里记录的my.ini设置结果相反
  3. 只在​​[mysqld]​​​里放​​default-character-set=utf8​​,MySql无法正常启动
  4. 只在​​[mysql]​​​里放​​default-character-set=utf8​​,无效
  5. 同时在​​[client]​​​和​​[mysql]​​​里放​​default-character-set=utf8​​,无效
  6. 同时在​​[client]​​​和​​[mysqld]​​​里放​​default-character-set=utf8​​,MySql同样无法正常启动
  7. 同时在​​[mysql]​​​和​​[mysqld]​​​里放​​default-character-set=utf8​​,MySql同样无法正常启动

报错记录2

​TypeError: 'float' object cannot be interpreted as an integer​

报错原因

​​​Python2 中整数 / 整数 = 整数,Python3 中整数 / 整数 = 浮点,整数 // 整数 = 整数​