Я знаю, что у большинства баз данных есть ограничения, но у Postgres нет. Вы можете запускать любые создания числовых таблиц, изменения столбцов и индексов в транзакции, и эти изменения не будут видны другим пользователям, пока не завершится COMMIT. Вот какими должны быть базы данных! : -)
Что касается SQL Server, вы можете запускать DDL внутри транзакции, но SQL Server не поддерживает метаданные версии , и поэтому изменения будут видны другим перед фиксацией транзакции. Но некоторые операторы DDL можно откатить, если вы находитесь в транзакции , но для каких из них работает, а для каких нет, вам нужно будет выполнить некоторые тесты.
проверка с этого хоста
shell> telnet IP 3306
Если MySQL работает и доступен, вы увидите версию mysql в выводе telnet. В противном случае проверяйте брандмауэр и т. Д., Пока telnet не завершится успешно.
Тогда я советую вам сначала подключиться к собственному клиенту mysql, чтобы исключить Rails из проблемной области.
Спасибо, ребята, за ваши усилия, я нашел решение, я предполагал установить удаленное соединение с MySQL. Вот ссылка для тех, у кого такая же ошибка. http://benrobb.com/2007/01/15/howto-remote-root-access-to-mysql/
Вы можете проверить ваш /etc/hosts.deny где:
ALL: ALL: DENY
или
mysqld: ALL: DENY
- ваш враг.
Вам необходимо отредактировать файл конфигурации mysql, по умолчанию адрес привязки
установлен на 127.0.0.1
.
Открыть: /etc/mysql/my.cnf
Измените адрес привязки
на IP-адрес, который вы собираетесь использовать для подключения yoursef к серверу базы данных.
Включить удаленный доступ
По умолчанию сервер MySQL не прослушивает TCP порт 3306. Чтобы разрешить (удаленные) TCP соединения, закомментируйте следующую строку в /etc/mysql/my.cnf:
skip-networking
Не забудьте отредактировать /etc/hosts.allow, добавив следующие строки:
mysqld: ALL : ALLOW
mysqld-max: ALL : ALLOW