mysql 数据文件夹 data 的设置与移动【windows | 实测】

直接说:能移动MySQL数据目录,省C盘空间。

先看位置。
程序装哪?C盘Program Files\MySQL。
数据目录默认在C:\ProgramData\MySQL\MySQL Server[版本号]\data。

打开我的.ini文件找datadir。
这文件可能在安装目录或刚才那个data目录下。

没找着?去服务列表找。
按Win+R,输入services.msc,打开服务。
找到mysql服务(名可能带版本号),右键属性,看"可执行文件的路径"。
里面可能带配置文件路径。

移动前,必须停服务。
服务列表里停,或命令行net stop mysql[版本号]。

把data目录整个复制到新地方,比如F盘。
路径改。
改完保存。

重启服务。
命令行net start mysql[版本号]。
看服务能不能起来,数据库用不用。

注意:先备份。
新路径要有读写权限。
路径用\\或/。
服务名别搞错。

数据在不在?你自己看。

mysql8.4.5的配置文件如何配置

去年夏天,我在家里的电脑上安装了MySQL8 .4 .5 ,那时候正巧遇到一个晚上,我坐在窗边,看着窗外繁星点点的夜空,手指在键盘上敲敲打打,试图配置好mysql.ini文件。
设置端口号的时候,我选择了3 3 06 ,因为这个数字已经在我心中根深蒂固,就像那个夏夜里的星空一样,简单却充满意义。
接着,我设置了安装目录和数据目录,用的是双斜杠,因为我知道在Windows上,这样做不会出错。
配置完最大连接数和连接失败次数后,我突然想到,字符集也很关键,于是把character-set-server设成了utf8 mb4 ,这样就不用担心数据编码的问题了。
配置过程中,我特别留意了路径的准确性,生怕哪个字符搞错了,导致后续配置出现问题。
至于那个被弃用的default_authentication_plugin,我特意没有设置,以免初始化失败。
配置完毕后,我保存了文件,重启了MySQL服务。
现在,我正坐在窗边,看着星空,突然想到,那个夏夜里的星空,和配置mysql.ini时的专注,似乎有着某种相似之处。
等等,还有个事,我突然想到,那个配置文件里,其实还有很多细节可以调整,比如日志文件的位置、慢查询日志的开启等等,也许,下一次,我可以试着探索一下这些。

MySQL大小写不敏感的设置mysql不分大小写

说实话,MySQL大小写敏感这事儿挺烦人的。
默认情况下,它是区分的,表名、列名、数据库名大小写不一样就认为不一样。
我之前搞项目就吃过这亏,一个表叫Users,另一个叫users,结果程序直接崩了。

有三种方法能搞成大小写不敏感。

第一,改MySQL配置文件。
这个文件叫my.cnf或者my.ini,位置看系统。
Windows一般在C:\Program Files\MySQL\MySQL Server 5 .7 \my.ini,Linux一般在/etc/my.cnf。
打开文件,找到[mysqld]这一段,加一行:lower_case_table_names=1 保存,重启MySQL服务。
不过这有个大坑,改完之后,所有现有的表名、列名都会自动变成小写。
你最好提前备份,不然现有项目都得改。

第二,用LOWER()函数。
这个函数能把字符串转小写。
比如查表users,可以这样写:SELECT FROM users WHERE LOWER(name) = 'john'; 这样不管name存的是'john'还是'John',都能查到。
这个方法的好处是,不影响现有表结构,不用改代码,但每次查都要转一次小写,性能有点影响。

第三,改列的校对规则。
在创建表的时候,给列指定COLLATE参数。
比如这样:CREATE TABLE users (id INT AUTO_INCREMENT, name VARCHAR(5 0) CHARACTER SET utf8 COLLATE utf8 _general_ci); 这里utf8 _general_ci就是不区分大小写。
如果需要区分,用utf8 _bin。
这个方法只改特定列,其他列还是区分大小写的。

总之,这三种方法各有优缺点。
改配置文件最彻底,但风险最大。
用LOWER()最简单,但每次查询都转小写。
改校对规则最灵活,但只能对单个列生效。
具体用哪个,得看你自己的情况。
记得改之前一定要测试,别把项目搞挂了。

mysql ERROR 1045 : 错误解决办法

MySQL ERROR 1 04 5 (2 8 000) 错误解决: 1 . Windows下,my.ini文件位置找对,用记事本编辑。
2 . my.ini中mysqld下加一行skip-grant-tables,保存。
3 . 重启MySQL服务。
4 . 命令行无密码登录mysql -uroot。
5 . use mysql;进入mysql数据库。
6 . UPDATE user SET password=PASSWORD('1 2 3 4 5 6 ') WHERE user='root';更新密码。
7 . FLUSH PRIVILEGES;刷新权限。
8 . my.ini中删除skip-grant-tables行,保存。
9 . 重启MySQL服务。