通过MySQL命令行客户端,我试图设置全局mysql_mode:
SET GLOBAL sql_mode = TRADITIONAL;
Run Code Online (Sandbox Code Playgroud)
这适用于当前会话,但在我重新启动服务器后,sql_mode恢复为默认值:'',一个空字符串.
如何将sql_mode永久设置为TRADITIONAL?
如果相关,MySQL是WAMP包的一部分.
谢谢.
我该采取什么措施?在使用Emacs时,是否有任何需要注意或提示增强SQL Server特有的IDE体验?
这是对MYSQL这个问题的跟进,DATETIME格式不正确
如何一劳永逸地摆脱STRICT_TRANS_TABLES?
mysql --help
报告以下配置:
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf
$ ls /etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf
ls: /Users/pain/.my.cnf: No such file or directory
ls: /etc/mysql/my.cnf: No such file or directory
ls: /usr/local/etc/my.cnf: No such file or directory
/etc/my.cnf
$ cat /etc/my.cnf
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION
Run Code Online (Sandbox Code Playgroud)
但这没有用.我有一些遗留代码,每次重新启动计算机时我都要启动mysql并更改sql_mode.
更新
所以我放弃了Homebrew安装的MySQL并从mysql.com下载它.但这也没有帮助.这里的答案如下:如何修复`未知变量'sql-mode = ANSI'`?我曾尝试不同的变化/etc/my.cnf
:[mysql]
,[mysqld]
,sql_mode
,sql-mode
-没有任何帮助.
我正在运行 MySQL 8.0.11 社区版。我需要在 my.cnf 中设置 sql_mode 以排除 ONLY_FULL_GROUP_BY 以便它重新启动安全。我尝试了以下变体:
sql_mode= STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
sql-mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
sql-mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
Run Code Online (Sandbox Code Playgroud)
无论变量名为“sql_mode”还是“sql-mode”,它们都以相同的方式失败:
mysqld --verbose --help | grep "sql[-_]mode"
2018-06-19T15:22:51.667734Z 0 [ERROR] [MY-011071] [Server] /usr/sbin/mysqld: Error while setting value 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' to 'sql_mode'
--sql-mode=name Syntax: sql-mode=mode[,mode[,mode...]]. See the manual
2018-06-19T15:22:51.675498Z 0 [ERROR] [MY-010119] [Server] Aborting
Run Code Online (Sandbox Code Playgroud)
sql模式
看起来mysqld 处理my.cnf 并将'sql_mode' 或'sql-mode' 转换为'sql_mode',然后它拒绝!
问题是如何解决这个问题?
我是emacs的新手,并不习惯lisp所以这可能是一个新的错误,但我找不到解决方案.
我尝试安装sql模式来与我的mysql DB进行交互.
为此,我修改了sql.el文件以精确sql-user,sql-password,sql-database,sql-server和sql-port选项,在sql-mysql-login-params中添加了端口
我启动了emacs和Mx sql-mysql
模式改为SQLi [MySQL]:运行
我更改缓冲区,Mx查找文件myfile.sql
此缓冲区采用SQL [ANSI]模式
然后我Cc Cr一个SQL语句并有错误"没有SQL进程启动"
如上所述,我Mx sql-set-sqli-buffer但我有错误"没有合适的SQLi缓冲区"
为此,我找不到解决方案......我错过了什么?
我使用emacs 24.2.1
编辑:当我直接在SQLi [MySQL]:运行缓冲区中执行select语句时,它按预期返回行...
其他缓冲区不应该处于SQL [MySQL]模式吗?
当我输入mysql dbname
在bash提示符下,我会自动连接到数据库dbname
与username
,password
以及host
包含在我的资料.my.cnf
文件.
当我M-x sql-mysql
在emacs中使用时,我再次被要求提供所有这些信息.
有没有办法让emacs sql模式使用我.my.cnf
文件中的信息?
我正在尝试使用sql-mode通过Emacs连接到PostgreSQL数据库.我启动Emacs,命令M-x sql-postgres
并提示用户,数据库和服务器,但不提示密码.打开一个空缓冲区,无论我写什么,我得到:
the Password for user james:
psql: FATAL: password authentication failed for user "james"
Run Code Online (Sandbox Code Playgroud)
不过我可以使用psql登录.我在Linux Antergos中运行GNU Emacs 24.4.1,PostgreSQL是9.3.5.
谢谢..
我有一堆远程MySQL服务器,只允许从localhost连接.要连接到它们,我执行以下操作:
ssh host
mysql -uuser -psecret -hhost.myhost.com
Run Code Online (Sandbox Code Playgroud)
在emacs中,我使用sql-mysql-mode配置了与本地MySQL的连接:
(setq sql-connection-alist
'((pool-a
(sql-product 'mysql)
(sql-server "localhost")
(sql-user "user")
(sql-password "secret")
(sql-database "")
(sql-port 3306))
))
(defun sql-connect-preset (name)
"Connect to a predefined SQL connection listed in `sql-connection-alist'"
(eval `(let ,(cdr (assoc name sql-connection-alist))
(flet ((sql-get-login (&rest what)))
(sql-product-interactive sql-product)))))
(defun sql-local ()
"Connect to the local MySQL server"
(interactive)
(sql-connect-preset 'pool-a)
(delete-other-windows))
(define-key global-map [f10] 'sql-local)
Run Code Online (Sandbox Code Playgroud)
所以,每次点击F10
,我都会获得MySQL shell.
是否有可能调整sql-mysql,所以它通过ssh连接到外部机器并在该机器上使用mysql程序,所以我可以从Emacs连接到任何地方?
与问题相关:org-mode:本机化fontify代码块
我有截至2012年11月1日的最新组织模式和emacs版本(组织存储在org-20121105中).
我也有emacs-24附带的sql-mode.
我已经得到了一个好成绩:
;; fontify code in code blocks
(setq org-src-fontify-natively t)
Run Code Online (Sandbox Code Playgroud)
然而,在我的组织文件中,这并不能说明问题.Java,bash等都可以工作.
#+BEGIN_SRC SQL
SELECT foo FROM bar
#+END_SRC
Run Code Online (Sandbox Code Playgroud)
当我打开文件foobar.sql时,模式指示符说SQL [ANSI](我也尝试作为源类型),并且字体锁定工作.
提前感谢任何提示.
如何检查进程正在使用的SQL_MODE?
所以我看到当前正在使用的所有处理过的 SHOW PROCESSLIST
我需要做的是知道进程正在使用的SQL_MODE?
我想确保我使用的客户端没有更改SQL模式.
谢谢