Rails—mysqldump error when migrating - mysql

I'm using Rails 4.0, every time I run a migration I get this error:
mysqldump: Got error: 1045: Access denied for user 'regan'#'localhost' (using password: NO) when trying to connect
Could not dump the database structure. Make sure `mysqldump` is in your PATH and check the command output for warnings.
I think the migrations are still working ok, but I'm getting a lot of failing tests (I just received this project already built).
How do I fix this error?

I assume you don't have the users password setup in the database.yml file. The common scenario is that you setup a password in the mysql installation and now not providing it.
Your database.yml file should look some thing like this.
development:
adapter: mysql2
encoding: utf8
database: <my db>
username: <my user>
password: <my password>
host: localhost
port: 3306

Related

How to access remote db data in Ruby on Rails?

I am having mysql in my local application and our client has given a sample application db access where we can find more seed data.
Now my question is there anyway of accessing the client data by changing any database.yml file in my local?
I tried using workbench -> Data export, I am getting the following error:
mysqldump: Got error: 1045:Access denied for user 'un'#ip-address (using
password: no) when trying to connect
Operation failed with exitcode 2
Is there any way to access the remote data without exporting?
you have to provide the ip address as host and all the login credentials to access it, also make sure you are inputting correct values. First check your connection by testing it on workbench then put values in yml file.
default: &default
adapter: mysql2
pool: 5
timeout: 5000
port: 3306
development:
<<: *default
database: <database name>
host: <ip address>
username: <username>
password: <password>
socket: <socket> or /tmp/mysql.sock

Rails database issue - ERROR 1045 (28000): Access denied for user 'root'#'localhost' (using password: NO)

I have looked through a lot of similar solutions but have been unable to resolve my issue so hopefully someone can help.
I have joined a Rails project and need to pull data via a dump.sh file to enable me to work locally. Whenever I run the required command, I receive this error:
ERROR 1045 (28000): Access denied for user 'root'#'localhost' (using password: NO)
If I try mysql -u root I see the exact same error message.
Trying mysql -u root -p requires my password to be entered (it is the same password in the database.yml file) which is kind of weird - surely this step should not work based on my error message?
My database.yml file looks like this for development:
development:
adapter: mysql2
database: database_development
host: localhost
port: 3306
username: root
password: "password_is_here"
pool: 5
timeout: 5000
I feel like I am missing something really basic here, but cannot for the life of me work out what it is :-/
EDIT: Forgot to mention, the database exists and has been migrated so rake db:create and rake db:migrate are not the issues.
EDIT2: My test database has the same information
I have seen this error before, that was because the database.yml contain some special characters that can't see in normal mode of text editor. I suggest to try to create totally new database.yml file from scratch then input database info again manually, restart the server to check the result.

mySQL root password not working

I am working on a new project with a friend. We installed mySQL on it but eventually decided to remove it to make a fresh new installation.
I am following the tutorial on DigitalOcean to install mySQL to be eventually used on Ruby on Rails
When I re-installed it during the installation I got prompted to enter a root password and once entered, the installation finished with no errors. At some point in the tutorial it says to add the following command:
sudo mysql_secure_installation
At this point it asked my root password but it doesn't work. I would get the following message:
ERROR 1045 (28000): Access denied for user 'root'#'localhost' (using password: YES)
I looked everywhere for a solution to my problem, this seems to occur to many people! I finally found a solution on the ubuntuforums which temporarily solved the problem.
Now I am trying to run the command:
rake db:create
after setting up my config/database.yml file as follows:
encoding: utf8
pool: 5
username: root
password: ********
host: localhost
database: app_test
socket: /var/run/mysqld/mysqld.sock
development:
<<: *default
database: app_development
test:
<<: *default
database: app_test
production:
<<: *default
database: app_production
username: app
password: <%= ENV['APP_DATABASE_PASSWORD'] %>
in the middle of the installation it prompts me for my db root password again due to denied access even thought it is set up on the .yml file:
Access denied for user 'root'#'localhost' (using password: YES)Please provide the root password for your MySQL installation
I enter it and get:
Couldn't create database for {"adapter"=>"mysql2", "encoding"=>"utf8",
"pool"=>5, "username"=>"root", "password"=>"******",
"host"=>"localhost", "database"=>"OApp_test",
"socket"=>"/var/run/mysqld/mysqld.sock"}
Then I tried to log into mysql with the command:
mysql -u root -p
and guess what? again, my root password is supposedly invalid!I am very confused...
extra info (if it is any help):
the first installation of the database that we made a few month ago and that we deleted was installed from my friends account.
I uninstalled mysql following this instructions.
if I uninstall mysql again, when I search for mysql files with the 'find a mysql' command it find a lot of files:
./var/lib/php5/modules/cgi/enabled_by_maint/mysql
./var/lib/php5/modules/apache2/disabled_by_maint/mysql
./var/lib/php5/modules/fpm/enabled_by_maint/mysql
./var/lib/php5/modules/cli/enabled_by_maint/mysql
./var/lib/php5/modules/registry/mysql
./var/lib/mysql
./var/lib/mysql/mysql
./var/log/mysql
./etc/apparmor.d/abstractions/mysql
./etc/mysql
./root/vst_install_backups/1438441474/mysql
./root/vst_install_backups/1438441474/mysql/mysql_datadir/mysql
./usr/share/bash-completion/completions/mysql
./usr/share/dbconfig-common/data/roundcube/upgrade/mysql
./usr/share/dbconfig-common/data/roundcube/install/mysql
./usr/share/dbconfig-common/internal/mysql
check your grants for that database
SHOW GRANTS ON app_development;
there is a difference between localhost and 127.0.0.1 make sure you have both.
If this is a new installation, you should be able to reset the password by uninstalling MySQL and installing it again. You can remove it completely with the --purge option to apt.
You can also google for password reset instructions if you have root on the OS level.

Connecting remote database server in Rails app failed

Using Rails 3.2, mysql2 gem, MariaDB 5.5. I got the following error while trying to deploy the app for the first time:
Mysql2::Error: Access denied for user 'abc'#'%' to database 'app_production'
I'm not sure why the percent sign % in 'abc'#'%'.
Here's my database.yml:
production:
adapter: mysql2
encoding: utf8
reconnect: true
host: db.domain.com
port: 3306
database: app_production
pool: 5
username: abc
password: some_password_here
socket: /run/mysqld/mysqld.sock
My /etc/mysql/my.cnf has bind 0.0.0.0, firewall is temporarily disabled with sudo iptables -F.
This error due to permission on database access for the user, so you have to grant access permission for this user on above database. Find below command to grant permission. run these command on mysql terminal
GRANT ALL PRIVILEGES ON app_production.* TO 'abc'#'%' WITH GRANT OPTION
FLUSH PRIVILEGES
It sounds like the user abc is not set up with MySQL. Go to your MySQL client and make sure that user is created (with that database).

Heroku db:push Sequel::DatabaseConnectionError -> Mysql::Error: Access denied for user 'reg'#'localhost ' (using password: NO)

I have a problem using the heroku db:push command to transfer a MySQL database to heroku. I've tried using the same command for another app with a sqlite3 database and everything went fine.
C:\Users\reg\Team-Omni>heroku db:push
Loaded Taps v0.3.9
Auto-detected local database: mysql://127.0.0.1/omni_dev?encoding=utf8
Warning: Data in the app 'growing-mist-42' will be overwritten and will not be recoverable
.
Are you sure you wish to continue? (y/n)? y
Failed to connect to database:
Sequel::DatabaseConnectionError -> Mysql::Error: Access denied for user 'reg'#'localhost
' (using password: NO)
if i remove the password for the mysql anonymous account, the error changes to
Sequel::DatabaseConnectionError -> Mysql::Error: Access denied for user ''#'localhost' to database 'omni_dev'
--additional information--
my .gems file:
rails -v 2.3.8
andre-geokit --version 1.5.0 --source http://gems.github.com
You are getting that error because you are not specifying the password for the local database connection. Apparently the username is configured as 'reg' (maybe in the MySQL config file). This doesn't have anything to do with the Heroku PostgreSQL database, it's a problem connecting to your local MySQL database (named omni_dev).
Try the following connection string:
mysql://USERNAME:PASSWORD#127.0.0.1/omni_dev?encoding=utf8
for the appropriate values of USERNAME and PASSWORD.
I've had this problem as well, but I was passing a password. My local app worked fine, but when using heroku db:push, I got the same error as redge.
Adding a port in the database.yml fixed the problem. So, a working database.yml has the following entries:
database: DATABASE
username: USER
password: PASSWORD
adapter: mysql
encoding: utf8
socket: /Applications/MAMP/tmp/mysql/mysql.sock
port: 8889