我已经设法找到了我的 MySQL 安装目录: /usr/local/mysql/
我在哪里可以找到my.cnf
知道我应该在哪里配置服务器的路径?我试过创建一个/etc/my.cnf
(如下所示)并且它没有影响
[mysqld]
#charset
collation_server=utf8_general_ci
character_set_server=utf8
default_character_set=utf8
Run Code Online (Sandbox Code Playgroud) 我正在尝试修改我的生产服务器上的 my.cnf 值,但更改在 之后没有生效sudo service mysql restart
,使用我的开发服务器上的 my.cnf(下载并替换原件)的精确副本,所做的更改是可见的从 mysql 命令行中的显示变量。
my.cnf 位于 /etc/mysql/my.cnf
sudo find / -name my.cnf
/etc/mysql/my.cnf
Run Code Online (Sandbox Code Playgroud)
所以整个系统上只存在一个文件..
生产是 ubuntu 10.04 LTS 64bit
开发是 ubuntu 11.10 32bit
Mysql 版本分别为 5.1.61 和 5.1.62。
更新2:
运行 mysql stop 和 mysql status 后返回 mysql stop/waiting,如果我运行 top -b | grep mysql
27652 root 20 0 4096 424 420 S 0 0.0 0:00.01 mysqld_safe
27769 mysql 20 0 392m 57m 7236 S 0 1.5 119116,08 mysqld
Run Code Online (Sandbox Code Playgroud)
看起来它仍在运行,时间对我来说不太好,但我现在担心如果我杀死这些/这个进程,我将无法再次运行 mysql,并且正在生产这很糟糕:S。
我意识到这可能不是可以回答的问题,而是杀死这些进程然后运行 service …
我在 Ubuntu 上运行 MySQL 5.5。
在 /etc/mysql/ 中有一个 my.cnf 文件,我希望它在那里。- 伟大的!
对于 mysql 的 debian 安装,建议您不要编辑 my.cnf 文件。/etc/mysql/my.cnf 文件中有一个 IncludeDir 指令,可以在 /etc/mysql/conf.d/ 文件夹中查找更多选项文件。
当我把这个文件放在这里时:
/etc/mysql/conf.d/my-local.cnf
Run Code Online (Sandbox Code Playgroud)
MySQL 读取文件并覆盖 /etc/mysql/my.cnf 中的任何内容。
伟大的!:-)
这是问题所在:
我将 /etc/mysql/conf.d/my-local.cnf 文件的本地副本保留在源代码管理中,并希望为整个团队定期更新它。所以,我的解决方案是符号链接它:
cd /etc/mysql/conf.d/
ln -s /path/to/my/my-local.cnf my-local.cnf
Run Code Online (Sandbox Code Playgroud)
MySQL 不读取此符号链接。
我已经验证了以下内容:
所以总结一下,当 /etc/mysql/conf.d/ 文件夹中有物理文件时,MySQL 会读取和解析。Mysql 不会读取此文件夹中的符号链接。
任何人的想法?这可能是 debian/ubuntu 问题吗?
标题说明了一切。我以前在 CENTOS 6 x86_64 操作系统上安装了 mysql 5.1 版。
我试图删除 mysql 5.1 并用安装的 mysql 5.6 替换它。
这是我的 mysql 5.1 卸载过程:
yum remove mysql
yum remove mysql-devel
yum remove mysql-client
rpm -qa | grep -i mysql
rpm -e mysql --nodeps
Run Code Online (Sandbox Code Playgroud)
这是我的 mysql 5.6 安装过程:
我为 mysql 5.6 获得了三个 rpm。server
、devel
、 和client
所有x86_64
。
rpm -ivh
在所有三个 rpm 的顺序上server
,client
然后是devel
。
/usr/bin/mysqladmin -u root password 'pass'
/usr/bin/mysql_secure_installation
reboot
然后我进入我的 webmin 管理面板来处理一些 mysql 设置,它告诉我我的/etc/my.cnf …
为什么 MySQLTuner 显示query_cache_size (=0)
?
在 my.cnf 中,我有
查询缓存类型 = 1
query_cache_size = 16M
query_cache_limit = 2M
MySQLTuner 的报告显示了这一点
[!!] 由于互斥量争用,查询缓存可能默认被禁用。
[OK] 查询缓存效率:48.5%(2M cached / 5M selects)
[!!] 每天查询缓存修剪:28824
[OK] 需要临时表的排序:0%(23 次临时排序 / 9K 排序)
[OK] 没有索引没有连接
[!!] 在磁盘上创建的临时表:69%(磁盘上 10K/总共 15K)
虽然 MySQLTuner 的建议显示
query_cache_size (=0)
query_cache_type (=0)
query_cache_size (> 16M)
由于显示“(=0)”的建议和显示每天高查询缓存修剪的报告,我的 query_cache_size 是否不起作用?
这是因为“由于互斥体争用,查询缓存可能在默认情况下被禁用”。?
MySQL 已经运行了 48 小时。
从 Remi-DB (CentOS 6) 升级到 MySQL 5.5 后,我们遇到了一个问题,每次重新启动我们的 SQL 服务器都会将自身设置回严格模式:
mysql> SELECT @@GLOBAL.sql_mode;
+--------------------------------------------+
| @@GLOBAL.sql_mode |
+--------------------------------------------+
| STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION |
+--------------------------------------------+
Run Code Online (Sandbox Code Playgroud)
然后我运行命令:
mysql> SET GLOBAL sql_mode="";
Query OK, 0 rows affected (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
这对会话来说效果很好,但是在重新启动时,此更改丢失了(我也尝试过设置“SET SESSION”sqlmode。
我还想指出,我也在my.cnf
文件中尝试过这个。
唯一可行的解决方案是编写一个 init 文件以SET GLOBAL sql_mode
在重新启动时运行,但这很麻烦、烦人且不合理,必须有一种方法可以立即完成这项工作。
我试过重新安装 SQL 服务器无济于事。(当然,我确实从备份中取回了数据,因为这是一台生产服务器。)
我正在 FreeBSD 9.2 服务器上工作,并已运行mysqltuner.pl
以检查 MySQL 的内存和缓存需求。现在我需要向my.cnf
FreeBSD添加一个文件,以便它使用该auto cnf
文件而不是该文件。
我可以这样复制my-default.cnf
:
cp /usr/local/share/mysql/my-default.cnf /usr/local/etc/my.cnf
然后my.cnf
将加载。
该my-default.cnf
文件显示了这些值(将延续到my.cnf
):
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
# *the above innodb line I can set*
# *But where do I get the values below?*
# …
Run Code Online (Sandbox Code Playgroud) my.cnf ×7
mysql ×7
ubuntu ×2
centos ×1
centos6 ×1
debian ×1
freebsd ×1
installation ×1
symlink ×1
ubuntu-10.04 ×1
ubuntu-11.10 ×1