如何配置我的 MariaDB 客户端 ( mysql
),这样无论我连接到哪个主机,都无需输入密码即可连接?
我不能只在[client]
部分输入密码,~/.my.cnf
因为这将适用于所有主机。
例如,我希望能够连接mysql -h myhost mydatabase
,即。无需指定用户名或密码。更好的是能够指定“主机别名”而不是实际的(笨拙的长)主机名。
听起来这在使用mysql-config-editor的 MySQL 中是可能的,但 MariaDB没有此功能。
如何配置我的 MariaDB 客户端 ( mysql
),这样无论我连接到哪个主机,都无需输入密码即可连接?
我不能只在[client]
部分输入密码,~/.my.cnf
因为这将适用于所有主机。
例如,我希望能够连接mysql -h myhost mydatabase
,即。无需指定用户名或密码。更好的是能够指定“主机别名”而不是实际的(笨拙的长)主机名。
听起来这在使用mysql-config-editor的 MySQL 中是可能的,但 MariaDB没有此功能。
当我转储数据库的架构时
mysqldump --no-data my_db > schema.sql
我得到这样的台词
KEY `index_tbl_on_col` (`col`)
但我想要这样的台词
KEY `index_tbl_on_col` (`col`) USING BTREE
事实上,有问题的索引确实有Index_type = 'BTREE'
.
show index from tbl;
| Table | Key_name | Index_type |
+-------+---------------+------------+
| tbl | ix_tbl_on_col | BTREE |
我尝试了多种mysqldump
选择,包括--skip-opt --create-options
一起使用。
我正在使用自制软件mysqldump
中的5.6.26 。
mysqldump --version
mysqldump Ver 10.13 Distrib 5.6.26, for osx10.10 (x86_64)
给定一个名为的表bananas
和一个名为的timestamp without time zone
列end_time
, 一些 psql
客户端有set timezone to 'UTC'
, 其他 psql
客户端有set timezone to 'US/Eastern'
,服务器配置timezone = 'UTC'
在postgresql.conf
如何编写检查约束bananas.end_time
以确保end_time
始终是一天的结束,定义为“美国/东部”一天的第 23 小时、第 59 分钟和第 59 秒?
我试过了:
alter table bananas
add constraint ck_end_time_is_end_of_day
check (
23 = date_part('hour', end_time at time zone 'UTC' at time zone 'US/Eastern')
and 59 = date_part('minute', end_time at time zone 'UTC' at time zone 'US/Eastern')
and 59 = floor(date_part('second', end_time at time zone 'UTC' at time zone 'US/Eastern'))
)
;
这似乎正确地限制了列,但它似乎效率低得可怕,而且非常不可读。是否有更高效和/或更易读的实现?
根据我的 Postgres (8.4.2) 版本的文档,pg_dump 可以“以脚本或存档文件格式输出”。脚本格式的转储 (4GB) 需要 1.5 小时才能恢复,我想知道存档格式是否更快。
顺便说一句,我的脚本格式转储正在使用 COPY 命令,所以我不是一次插入一个。
提前致谢。