sat  
                (Sat)
               
                 
              
                  
                    September 14, 2019, 12:13am
                   
                   
              1 
               
             
            
              I’m importing question2answer site and followed below steps. Script is not able to connect to db. anyone please help me on this.
I took ref from vBulletin thread 
Docker install Server 
Steps:
Installed discourse using 30 min guide  and it worked perfectly fine. 
entered app using below commands 
 
cd /var/discourse 
./launcher enter app
 
Installed Mariadb   as I was not able to install mysql: 
 
apt-get update && apt-get install libmariadb-dev mariadb-server-10.3
 
After finishing installing Mariadb check its status and started: 
 
sudo service mysql status 
sudo service mysql start
 
Install dependencies 
 
echo “gem ‘mysql2’, require: false” >> /var/www/discourse/Gemfile 
echo “gem ‘php_serialize’, require: false” >> /var/www/discourse/Gemfile 
cd /var/www/discourse 
su discourse -c ‘bundle install --no-deployment --without test --without development --path vendor/bundle’
 
Imported database 
 
mysql -uroot -p -e ‘CREATE DATABASE q2adb’ 
mysql -uroot -p q2adb < q2a-old-db.sql
exported below variables, I dont have any attachments so not exported that variable. also not set password for root user. 
 
export DB_NAME=“q2adb” 
export DB_USER=“root” 
export DB_PW=“” 
export TABLE_PREFIX=“qa_” 
export TIMEZONE=“America/Los_Angeles”
cd /var/www/discourse 
su discourse -c ‘bundle exec ruby script/import_scripts/question2answer.rb’
 
This is the error I’m getting now after running below command.
/var/www/discourse# su discourse -c ‘bundle exec ruby script/import_scripts/question2answer.rb’ 
root:@localhost  wants q2adb 
Loading existing groups… 
Loading existing users… 
Loading existing categories… 
Loading existing posts… 
Loading existing topics…
Access denied for user ‘root’@‘localhost’ 
Cannot connect in to database.
Hostname: localhost 
Username: root 
Password: 
database: q2adb
Edit the script or set these environment variables:
export DB_HOST=“localhost” 
export DB_NAME=“” 
export DB_PW=‘password’ 
export DB_USER=“root” 
export TABLE_PREFIX=“qa_”
Exiting.
             
            
               
               
              1 Like 
            
            
           
          
            
              
                pfaffman  
                (Jay Pfaffman)
               
              
                  
                    September 14, 2019, 12:45am
                   
                   
              2 
               
             
            
              Either you need to set a password or maybe a host name? You installed mysql inside the container?
Can you connect to mysql from the command line and see that there is data there. (Show tables 
             
            
               
               
              3 Likes 
            
            
           
          
            
              
                sat  
                (Sat)
               
              
                  
                    September 14, 2019,  3:39pm
                   
                   
              3 
               
             
            
              @pfaffman 
I’m inside container.
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.
Am I missing any step?
             
            
               
               
              1 Like 
            
            
           
          
            
              
                sat  
                (Sat)
               
              
                  
                    September 15, 2019,  2:39am
                   
                   
              4 
               
             
            
              discourse experts, please help me on this. I dont know how to proceed at the moment.
Thanks for your help in advance!
             
            
               
               
              1 Like 
            
            
           
          
            
            
              The traditional way to incentivize people to give you extra help is to pay money for it, you could post in marketplace   with a budget.
             
            
               
               
              1 Like 
            
            
           
          
            
              
                INSTAR  
                (Mike Polinowski)
               
              
                  
                    October 31, 2019, 11:21am
                   
                   
              6 
               
             
            
              Hello Discourse Community,
@sat   have you found a solution for this yet ?
I ran into the same error while trying to migrate from vBulletin5 using the Docker part of the same thread .
I also installed MariaDB instead of MySQL:
apt-get update && apt-get install libmariadb-dev mariadb-server-10.3
 
I imported my SQL data and I am able to connect to the database and see that the tables are created:
mysqlcheck -c vb5  -u root -p
 
At first, I used the default login (root / blank ) and in a second attempt I set a password for the root user:
export DB_NAME="vb5"
export DB_USER="root"
export DB_PW="password1234"
export TABLE_PREFIX="vb5."
export ATTACHMENT_DIR='/vb5-attachments'
export TIMEZONE='Europe/Berlin'
cd /var/www/discourse
su discourse -c 'bundle exec ruby script/import_scripts/vbulletin5.rb'
 
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
 
             
            
               
               
               
            
            
           
          
            
              
                INSTAR  
                (Mike Polinowski)
               
              
                  
                    October 31, 2019, 12:19pm
                   
                   
              7 
               
             
            
              Ok I am now a step closer into getting this to work. I was able to get the discourse user to connect.
Connect into the Discourse container as root. 
Connect to the MariaDB Database 
 
mysql -u root -p
*enter your password*
update mysql.user set plugin = 'mysql_native_password' where User='root';
FLUSH PRIVILEGES;
EXIT;
 
Then switch to the discourse user and try to connect to the database with the root account:
su discourse
mysql -u root -p
Enter password: #password1234
 
And you should see the SQL shell, when before you were getting an access denied.
Now exit the discourse user and try to run the migration script again:
exit
su discourse -c 'bundle exec ruby script/import_scripts/vbulletin5.rb'
 
Now the script is running (but I am getting a vBulletin5 related error I have to figure out next)