Я пробовал это на Ubuntu 16.04 (обновлено) и ruby, который поставляется с системой ruby 2.3.1p112 (2016-04-26) [x86_64-linux-gnu]
.
Из того, что я предполагаю, вы используете неправильный, старый (в руководстве есть версия 2.26 , которая не будет работать с текущим хромом), chromedriver, который не совместим с текущим стабильным хромом .
Текущий стабильный Chrome - Unpacking google-chrome-stable (71.0.3578.98-1) ...
, поэтому вам нужно максимально приблизить chromedriver к версии Chrome.
Чтобы получить полный список версий хромедриверов, нажмите здесь .
В моем случае это будет 71.0.3578.80
версия:
wget -N http://chromedriver.storage.googleapis.com/71.0.3578.80/chromedriver_linux64.zip
Затем можно продолжить, как показано в инструкциях.
Тогда вы получите работу selenium-webdriver
:
irb
irb(main):001:0> require 'selenium-webdriver'
=> true
irb(main):003:0> options = Selenium::WebDriver::Chrome::Options.new
=> #, @binary=nil, @prefs={}, @extensions=[], @options={}, @emulation={}, @encoded_extensions=[]>
irb(main):004:0> options.add_argument('--headless')
=> #
irb(main):005:0> @driver = Selenium::WebDriver.for(:chrome, options: options)
=> #
Примечание. Если у вас возникли проблемы с установкой ffi
, установите libffi-dev
через apt-get
.
У Вас есть больше проблемных случаев, чем просто точки с запятой в строках.
mysql_query()
, как USE
.DELIMITER
.CREATE PROCEDURE
.Я не знаю о простом способе справиться с этой задачей, не выходя из оболочки mysql клиенту командной строки. Я понимаю, что Вы сказали, что не можете полагаться на тот клиент, присутствующий, но без того клиента, Вам нужен большой объем кода PHP, чтобы проанализировать сценарий и выполнить операторы соответственно.
Вы можете находить такой код в phpMyAdmin продукте. Однако тот продукт лицензируется под GPL, поэтому при использовании какого-либо кода необходимо также лицензировать собственный проект под GPL.
См. также мои ответы на эти связанные вопросы:
Бритва Оккама ударяет снова.
Вышеупомянутое взрывается (), функция не собиралась работать, потому что существуют точки с запятой в значениях. Однако то, что мне не удалось понять (и упоминание) - то, что точки с запятой всегда предшествуют новым строкам в файле дампа SQL. Увы,
$sql = explode(";\n", file_get_contents('dump.sql'));
foreach ($sql as $key => $val) {
mysql_query($val);
}
Кроме того, благодарит за Вашу справку, счет.
Здесь существует большая проблема. У Вас могли бы быть операторы, которые полагаются на другие операторы. Вы не можете просто выполнить их линейно вслепую.