你如何计算 mysql max_connections ?
你有什么考虑?
我有一个很大的 MySql DB (150GB),直到现在我才注意到innodb_file_per_table
设置为off
导致整个数据库托管在一个文件 ( ibdata1
) 上。我想激活innodb_file_per_table
并让它追溯地将数据库分成几个文件,最好的方法是什么?
我正在尝试使 mysql 客户端连接到 mysql 服务器,而无需以交互方式提供密码。采取的步骤:
1)首先创建一个mylogin.cnf文件
$ mysql_config_editor set --user=<user> --password --host=<host>
Enter password:
Run Code Online (Sandbox Code Playgroud)
2)文件创建成功:
$ ls -la .mylogin.cnf
-rw-------. 1 urmt urmt 136 Dec 19 11:01 .mylogin.cnf
$ mysql_config_editor print --all
[client]
user = <user>
password = *****
host = <host>
Run Code Online (Sandbox Code Playgroud)
3)使用mysql客户端连接
$ mysql <dbname>
ERROR 1045 (28000): Access denied for user '<user>'@'<host>' (using password: NO)
Run Code Online (Sandbox Code Playgroud)
某处是否有默认值/配置使客户端忽略 mylogin.cnf 中的密码?从文件中正确读取了用户和主机属性。
如果我在命令行上提供密码,我就可以正常连接:
$ mysql -p <dbname>
Enter password:
Reading table information...
...
mysql>
Run Code Online (Sandbox Code Playgroud)
MySQL 客户端版本为 5.6.22,MySQL Server 版本为 5.6.22,均在 Oracle Linux …
我试图通过my.cnf更改我们的 MySQL 的字符集,但失败了。我添加了下面列出的字符集设置:
# The MySQL server
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
skip-locking
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
# ------------- MYSQL CHARSETS --------------
character_set_system = utf8
character_set_server = utf8
character_set_results = utf8
character_set_database = utf8
character_set_connection = utf8
character_set_client = utf8
collation_connection = utf8_general_ci
collation_database = utf8_general_ci
collation_server = utf8_general_ci
Run Code Online (Sandbox Code Playgroud)
当我启用这些时,MySQL 无法启动。我怎样才能确保一切都默认为 utf8 - 总是?
更新
仍然有一些地方在成为 …
我是 mysql 的新手。我想使用我想要的任何 ip 连接到 mysql 服务器。我读到我所要做的就是将行 bind-address = 0.0.0.0 添加到 my.cnf 文件中。这就是我所做的。我重新启动了 mysql 服务器,然后从命令行对其进行了测试。
mysql -uroot -p'*password*' -h 127.0.0.1 --> Works
mysql -uroot -p'*password*' -h 192.168.2.4 (local ip address) --->
ERROR 1045 (28000): Access denied for user 'root'@'mguru.lnx.gr' (using password: YES)
Run Code Online (Sandbox Code Playgroud)
您可以在 my.cnf 文件中看到 mysqld 部分的以下部分
[mysqld]
user = mysql
port=3306
socket = /opt/lampp/var/mysql/mysql.sock
skip-external-locking
key_buffer = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M …
Run Code Online (Sandbox Code Playgroud) 我正在运行一个 facebook 应用程序,目前有 300 - 600 个并发用户(并且还在增长)。为了让硬件为增长做好准备,我将 i7 / 12gb ram / 2x 80gb intel x25 ssd(debian 5.0 / mysql 5.0 / 64bit)更改为 bi-xeon / 24gb ram / 2x 120gb intel 320 ssd /mysql . 64 位)。
现在我面临的问题是性能比“小盒子”差。在两台服务器上,我一直在使用 nginx/php fcgi 来提供内容。
我只使用 innodb,读取/写入大约 65%/35%。大约 800 - 1000 qps,但所有查询都很简单,永远不会加入超过 1 个额外的表。所有索引都已设置,并且没有单独的查询记录在慢日志中(> 2 秒)。目前我有大约 400MB 的数据(大约 1GB 的索引)预计它每个月都会翻一番。
我很喜欢每个可以给我一个提示的人,他们应该改变什么才能让它运行得更顺畅。
i7盒子上的旧配置是这样的(混合myisam / innodb),在800+用户下表现相当不错。
旧的my.cnf
key_buffer = 3000M
max_allowed_packet = 128M
thread_stack = 192K
thread_cache_size = 8
max_connections = 400
table_cache = 8000
thread_concurrency …
Run Code Online (Sandbox Code Playgroud) LOAD DATA LOCAL INFILE
默认情况下不启用。通常,它应该通过放置local-infile=1
在my.cnf
. 但它不适用于所有安装。根据我的经验,它适用于 Debian 7,但不适用于 Debian 7 minimum,尽管这两个安装都来自同一个预编译的 deb 包。两者都在 OpenVZ VPS 上。
如何调试为什么local-infile=1
对安装不起作用,以及如何安全激活LOAD DATA LOCAL INFILE
?
我可以运行查询SET GLOBAL binlog_format = 'ROW'并且它适用于该会话。
停止并重新启动 MySQL 后,如何使此设置保持不变?
注意:我使用的是 MySQL 5.5.19 版本(使用 Moodle),我刚刚从 MyISAM 升级到 InnoDB,因此需要这个新设置。
我曾尝试将这两个命令(单独)添加到 my.cnf 中:binlog-format=ROW和binlog_format=ROW,但都不起作用。每次更改 my.cnf 时,我都会停止并重新启动 MySQL。
我在没有设置的情况下得到的错误是邪恶的错误消息:
调试信息:无法执行语句:无法写入二进制日志,因为 BINLOG_FORMAT = STATEMENT 并且至少一个表使用仅限于基于行的日志记录的存储引擎。当事务隔离级别为 READ COMMITTED 或 READ UNCOMMITTED 时,InnoDB 仅限于行日志记录。
我有一个my.cnf
文件。在这里面我看wait_timeout
还有connect_timeout
。这2个有什么区别?
您是否必须重新启动 MySQL 才能编辑更改?或者您可以即时编辑它们并重新启动 MySQL 或在 MySQL 内部进行更改?
该服务器运行着 100 多个处于活动状态的网站,除非必须,否则我真的不想关闭 mysql 以重新启动。