Estoy importando un sitio de question2answer y seguí los pasos a continuación. El script no puede conectarse a la base de datos. Por favor, alguien ayúdeme con esto.
Después de finalizar la instalación de MariaDB, verifiqué su estado y lo inicié:
\u003e sudo service mysql status
\u003e sudo service mysql start
Instalé las dependencias
\u003e echo “gem ‘mysql2’, require: false” >> /var/www/discourse/Gemfile
\u003e echo “gem ‘php_serialize’, require: false” >> /var/www/discourse/Gemfile
\u003e cd /var/www/discourse
\u003e su discourse -c ‘bundle install --no-deployment --without test --without development --path vendor/bundle’
Importé la base de datos
mysql -uroot -p -e ‘CREATE DATABASE q2adb’
mysql -uroot -p q2adb < q2a-old-db.sql
Exporté las siguientes variables; no tengo ningún archivo adjunto, por lo que no exporté esa variable. Tampoco establecí contraseña para el usuario root.
\u003e export DB_NAME=“q2adb”
\u003e export DB_USER=“root”
\u003e export DB_PW=“”
\u003e export TABLE_PREFIX=“qa_”
\u003e export TIMEZONE=“America/Los_Angeles”
\u003e
\u003e cd /var/www/discourse
\u003e su discourse -c ‘bundle exec ruby script/import_scripts/question2answer.rb’
Este es el error que obtengo ahora después de ejecutar el siguiente comando.
/var/www/discourse# su discourse -c ‘bundle exec ruby script/import_scripts/question2answer.rb’
root:@localhost desea q2adb
Cargando grupos existentes…
Cargando usuarios existentes…
Cargando categorías existentes…
Cargando publicaciones existentes…
Cargando temas existentes…
Acceso denegado para el usuario ‘root’@‘localhost’
No se puede conectar a la base de datos.
Nombre de host: localhost
Nombre de usuario: root
Contraseña:
Base de datos: q2adb
Edite el script o establezca estas variables de entorno:
I tried setting Hostname to localhost, ‘127.0.0.1’, ip-171-22-11-150 (this is shown as a hostname when I issue command >hostname) and with actual IP address of server.
I also set password for a root users. I do see tables in db got imported correctly from q2a.
I am not sure about the TABLE_PREFIX here. But all table names start with vb5. in my default installation - so I guess this should be ok (I also tried leaving it empty).
But the main issue is that I cannot connect to the MariaDB database with the discourse user:
su discourse -c 'bundle exec ruby script/import_scripts/vbulletin5.rb'
Loading existing groups...
Loading existing users...
Loading existing categories...
Loading existing posts...
Loading existing topics...
Traceback (most recent call last):
5: from script/import_scripts/vbulletin5.rb:632:in `<main>'
4: from script/import_scripts/vbulletin5.rb:632:in `new'
3: from script/import_scripts/vbulletin5.rb:27:in `initialize'
2: from script/import_scripts/vbulletin5.rb:27:in `new'
1: from /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/mysql2-0.5.2/lib/mysql2/client.rb:90:in `initialize'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/mysql2-0.5.2/lib/mysql2/client.rb:90:in `connect': Access denied for user 'root'@'localhost' (Mysql2::Error)
su discourse
mysqlcheck -c vb5 -u root -p
Enter password: #password1234
mysqlcheck: Got error: 1698: Access denied for user 'root'@'localhost' when trying to connect