为没有 root 的 cron 作业提供 MySql root 密码(~/.my.cnf
)以拥有主文件夹的最佳方法是什么?我使用的服务器是centos
我假装在登录 MariaDB 版本时显示个性化消息。10.1.37,按照一张表中的数据。
我的想法是使用存储过程,如fromdual.com所示,但我在磁盘中找不到 my.cnf(我使用的是 Xampp),所以我创建了文件并添加了SET GLOBAL init_connect="CALL audit.login_trigger()";
但现在出现此错误:
错误:在配置文件中找到没有前面组的选项:C:\xampp\mysql\my.cnf 在行:1 默认处理中的致命错误。程序中止
Q1) 我应该输入什么前面的组?
在这个来自 fromdual 的pdf中,没有关于这个主题的详细信息。
Q2)还有其他方法吗?
我已经查看了这个问题,但我需要检查表格以创建消息
服务器故障中也提出了同样的问题,但我认为这个站点更合适。
我正在尝试增加到 9000,但 MariaDB 自动将其设置为 4895。
这是我的简单配置 https://pastebin.com/raw/4eFiuFSv
MySQLTuner 输出:
Control warning line(s) into /var/lib/mysql/cp.goal.ge.err file
Control error line(s) into /var/lib/mysql/cp.goal.ge.err file
Restrict Host for user@% to user@SpecificDNSorIp
Configure your accounts with ip or subnets only, then update your configuration with skip-name-resolve=1
Temporary table size is already large - reduce result set size
Reduce your SELECT DISTINCT queries without LIMIT clauses
Increase table_open_cache gradually to avoid file descriptor limits
Read this before increasing table_open_cache over 64:
Beware that open_files_limit (10000) variable
should be greater than table_open_cache (4895)
Optimize queries and/or use InnoDB to reduce lock wait
Consider installing Sys schema from https://github.com/mysql/mysql-sys
Variables to adjust:
query_cache_size (=0)
query_cache_type (=0)
query_cache_size (> 125M)
table_open_cache (> 4895)
我以为我会很聪明并更新 my.cnf 文件以添加ft_min_word_len=2
并且没有先备份它。我再也不会犯这样的错误了。幸运的是,我们的项目仍在生产中,没有造成任何伤害。
我不知道我在该文件中做错了什么,因为我看不到任何错误日志(/var/log/mysqld.log)。在我接触配置文件之前,MySQL 运行良好 - 好吧,我认为它是。
通过运行以下命令并重新启动 mysqld(服务 mysqld 重新启动):
mv /etc/my.cnf /etc/my.cnf.backup
我让它重新启动并再次运行 - 这证明配置文件以某种方式损坏。一旦我把它放回去并重新启动服务,它就无法再次启动。
这可能没什么帮助,但这是我的终端屏幕,显示了已编辑的 my.cnf 文件:
[mysqld]
local-infile=1
atadir=/var/lib/mysql
ft_min_word_len=2
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
innodb_buffer_pool_size=2M
innodb_additional_mem_pool_size=500K
innodb_log_buffer_size=500K
innodb_thread_concurrency=2
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
innodb_buffer_pool_size=2M
innodb_additional_mem_pool_size=500K
innodb_log_buffer_size=500K
innodb_thread_concurrency=2
我看不出这是什么地方出了这么大的问题。显然,我已经尝试删除我添加的行。
我在这里有什么选择?如何恢复原始配置文件?
我已经设置ft_min_word_len = 1
为my.cnf
文件,也SHOW VARIABLES LIKE 'ft_min_word%'
显示ft_min_word_len as 1
. 然后我重新加载了所有数据库表,它仍然没有搜索一个字符的单词。
我的桌子:
CREATE TABLE IF NOT EXISTS event (
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(80) NOT NULL,
description TEXT,
time TIMESTAMP DEFAULT 0,
FULLTEXT(name)
);
我的查询:
SELECT event.id AS eid,
event.name AS ename
FROM event
WHERE MATCH(event.name) AGAINST('+W*' IN BOOLEAN MODE)
我正在搜索的事件名称是W.W.W. + Pavel Fajt + Vladimir 518 @ Sono
请问还有什么可能导致问题?
编辑:我正在使用 InnoDB,抱歉我之前没有提到它。
我们有大约 5-6 个不同的内部网络应用程序(仅限员工使用),我们将把它们转移到一个新的虚拟服务器上,但是我需要先设置我们的 my.cnf 设置,我迷路了(我是网页设计师 - 所以这是有点超出我的能力范围!)。
我们的内部系统每个大约有 100 个表,主要使用 InnoDB,但在某些情况下使用 Myisam。此外,我们的 1 个 Web 应用程序有相当多的数据(100,000 条记录+),用于选择数据的 SQL 效率非常低(使用的索引很少,内部 SELECT 等)。任何时候大约有 50 个用户。
我们的新服务器将是来自HeartInternet的 HS-250 。
非常感谢您的帮助,
通过mysqld
运行,我希望看到/etc/my.cnf
至少有一个命令使用了它
ps aux | grep mysql | grep -v grep
mysqladmin variables | grep defaults-file
显示 的值--defaults-file
。但我没有看到这样的项目。为什么不?
我认为 /etc/my.cnf
正在阅读,因为如果我在其[mysqld]
部分中输入了错误条目,例如,error = true
当我尝试启动它时,它会以一条消息mysqld
中止。ERROR
我通过mysql-5.6.10-osx10.7-x86_64.pkg
从运行来使用安装mysql-5.6.10-osx10.7-x86_64.dmg
。
我最近在 openSUSE 机器上通过 rpm 包安装了 MySQL 服务器和客户端 5.5.28,但我无法找到my.cnf
文件。我查看了所有mysql --verbose --help | grep -C3 my.cnf
打印的目录,这些目录是/etc/my.cnf
(没有这样的文件)、/etc/mysql/my.cnf
(没有目录mysql
)、usr/etc/my.cnf
(etc
在我的中没有usr
)和~/.my.cnf
(不存在)。然后我尝试find / -name *.cnf
了它给了我:
/usr/share/doc/MySQL-server-standard-5.0.24a/my-huge.cnf
/usr/share/doc/MySQL-server-standard-5.0.24a/my-innodb-heavy-4G.cnf
/usr/share/doc/MySQL-server-standard-5.0.24a/my-large.cnf
/usr/share/doc/MySQL-server-standard-5.0.24a/my-medium.cnf
/usr/share/doc/MySQL-server-standard-5.0.24a/my-small.cnf
/usr/share/ssl/openssl.cnf
/usr/share/mysql/my-large.cnf
/usr/share/mysql/my-huge.cnf
/usr/share/mysql/my-innodb-heavy-4G.cnf
/usr/share/mysql/my-medium.cnf
/usr/share/mysql/my-small.cnf
我想编辑my.cnf
文件以练习复制和高可用性。我在某处读到,my.cnf
在我的情况下,不需要有文件就可以很好地使用 MySQL ......所以我想重命名这些my-*.cnf
文件my.cnf
并将其放在 MySQL 将查找my.cnf
文件的位置。但我首先不确定这是否可行,其次是选择哪一个来练习复制。
我不想让自己变得复杂,所以我想采取中等的……我做对了吗?