基本操作
錯誤日志:位于data文件夾下,文件名為 計算機名.err 和 mysql_error.log
[1064]:You have an error in your SQL syntax
錯誤產(chǎn)生的原因:
1、使用了Mysql中的保留字或關鍵字。
ALTER TABLE `user` CHANGE uname name VARCHAR(20)
如上例中,name是Mysql的保留字,使用時應寫作`name`。
2、缺少必要數(shù)據(jù)
SELECT * from students WHERE studentID =
3、命令拼寫錯誤
UDPATE table1 SET id = 0;
[2003]:Can't connect to MySQL server on 'localhost'
(10061)
mysqld -nt -remove:移除MySQL服務
mysqld -nt -install:注冊MySQL服務
(1067)
MySQL服務無法正常啟動。通過命令行(管理員權(quán)限)啟動時響應如下:
>net start mysql
mysql 服務正在啟動 ...
mysql 服務無法啟動。
系統(tǒng)錯誤 。
1067
發(fā)生系統(tǒng)錯誤。
進程意外終止。
查看錯誤日志:data/mysql_error.log
2017-08-23 09:18:39 1894 InnoDB: Error: unable to create temporary file; errno: 2
2017-08-23 09:18:39 4508 [ERROR] Plugin 'InnoDB' init function returned error.
2017-08-23 09:18:39 4508 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2017-08-23 09:18:39 4508 [ERROR] D:\MySQL\mysql5.6\bin\mysqld.exe: unknown variable 'default-file=D:\MySQL\mysql5.6\my.ini'
共有兩個問題:
1.不能生成臨時文件
2.未知變量
先解決第二個問題: unknown variable
查看Mysql5.6的手冊 windows-start-service 找到其中的示例如下:
C:\> "C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld"
--install MySQL --defaults-file=C:\my-opts.cnf
對比發(fā)現(xiàn)誤將 defaults
寫成 default
。
修改并再次啟動mysql服務查看錯誤日志:
2017-08-23 09:20:14 100c InnoDB: Error: unable to create temporary file; errno: 2
2017-08-23 09:20:14 2640 [ERROR] Plugin 'InnoDB' init function returned error.
2017-08-23 09:20:14 2640 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2017-08-23 09:20:14 2640 [ERROR] Unknown/unsupported storage engine: InnoDB
2017-08-23 09:20:14 2640 [ERROR] Aborting
查看Mysql5.6的手冊 temporary-files.html
On Windows, MySQL checks in order the values of the TMPDIR, TEMP, and TMP environment variables. For the first one found to be set, MySQL uses it and does not check those remaining. If none of TMPDIR, TEMP, or TMP are set, MySQL uses the Windows system default, which is usually C:\windows\temp.
If the file system containing your temporary file directory is too small, you can use the mysqld --tmpdir option to specify a directory in a file system where you have enough space. On replication slaves, you can use --slave-load-tmpdir to specify a separate directory for holding temporary files when replicating LOAD DATA INFILE statements.
通過以上兩段內(nèi)容可以知道,在my.ini中可以不指定tmpdir,所以注釋掉my.ini中如下定義:
tmpdir = "D:/MySQL/mysql5.6/data/tmp"
再次啟動mysql服務,服務可以正常啟動。
無法連接到 MySQL 服務器,可能的情況為:
1、MySQL 服務沒有正常啟動,如無可用磁盤空間、my.ini中設置錯誤等;
2、MySQL 服務器資源緊張,導致無法連接。
中文亂碼問題
問題描述:使用insert對數(shù)據(jù)表插入數(shù)據(jù)時中文字符顯示結(jié)果為問號(?)
/*查看Mysql編碼情況,查詢結(jié)果與Mysql安裝時的設置有關*/
SHOW VARIABLES LIKE 'char%'
結(jié)果:
Variable_name | Value |
---|---|
character_set_client | utf8 |
character_set_connection | utf8 |
character_set_database | utf8 |
character_set_filesystem | binary |
character_set_results | utf8 |
character_set_server | latin1 |
由此可知,亂碼問題是由character_set_server不是utf8引起的。所以,修改my.ini文件中關于server編碼方式的設置:
[mysqld]
## UTF 8 Settings
#字符序:ci表示大小寫不敏感
collation_server=utf8_unicode_ci
#字符集
character_set_server=utf8
再次查詢,character_set_server已經(jīng)更改為utf8。