I just had to change [dedicated CentOs] servers at Godaddy.
After I uploaded my .sql database backup file to the site using FTP, I connected to my site using SSH.
After changing to super user using the su - command, i tried using the following code to restore my database:
[root#sXXX.XXX.XXX.XXX ~]# mysql -u alaskasl_destiny -p alaskasl_freakout < /home/alaskasl/backup/databases/alaskasl_freakout.sql
I get the following ERROR 1044 (42000): Access denied for user 'alaskasl_destiny'#'localhost' to database 'alaskasl_freakout'
I can't figure out what I am doing wrong. This command has always worked for me in the past
First and foremost, if alasas1... is your real username, I would replace it with 'username'. Never give that info out, especially on a public place like Stackoverflow.
That said, a few things to check
1. You need to know the root user's login credentials for this new mysql instance. If this is a new setup the user is root with no password, so you should be able to use the following command:
$ mysql -u root
Once you do get in to mysql, you will see a prompt similar to:
mysql>
at that prompt you can type
mysql> show databases;
and a list of databases will display. Does the database you expect to be in there in there?
if not, here is what you need to do:
mysql> CREATE DATABASE 'database_name';
mysql> CREATE USER 'username' IDENTIFIED BY 'password';
mysql> GRANT ALL PRIVILEGES ON *.database_name TO 'username';
mysql> exit
At this point what you did was create the database, create a user with a password in mysql, and granted access to that database for that user. Once you type exit, you should now be back at the command prompt.
Now you can run mysql -u username -p database_name < /path/to/sql_file.sql
I installed mysql 5.6 on windows 7(32 bit). When I open command line client 5.6 it asks me for password i put password (mysql) and press enter, it gives connection id number, meaning connection was successful.
I created a database by the name bank
create database bank;
it was created.
I created the lrngsql database user with full privileges on the bank database using following command
Grant all privileges on bank.* to 'lrngsql'#'localhost' identified by 'xyz';
It was successful too.
Now here my query begins, how do i login to this user (lrngsql).
the command i m typing in prompt
mysql>use bank;
it says
Database changed.
then i type following command to login to lrngsql
mysql -u lrngsql -p xyz;
but it gives me error. please help me what should i exactly type in order to get in to lrngsql user on bank database.
mysql -u lrngsql -p xyz;
There should be minor change to command you have used for loggin in, there should not be any space in between -p and your password.
Like
mysql -u lrngsql -pxyz;
I have created a user Sam with password mypass for my database db.
How to login with this user.
I want to check the privileges privided to this user.
I am using MYSQL 5.5
i am using windows 7. mysql command line.
Logging in is as simple as:
mysql -u Sam -p
You should then be prompted for your password. At this point, you'd either have to select a database to do operations on it or you could check your grants in general.
Checking user privileges is as simple as:
SHOW GRANTS FOR CURRENT_USER;
I would highly recommend reading MySQL :: Getting Started with MySQL.
I want to begin writing queries in MySQL.
show grants shows:
+--------------------------------------+
| Grants for #localhost |
+--------------------------------------+
| GRANT USAGE ON *.* TO ''#'localhost' |
+--------------------------------------+
I do not have any user-id but when I want to make a user I don't have privilleges, also I don't know how to make privileges when even I don't have one user!
mysql> CREATE USER 'parsa'#'localhost' IDENTIFIED BY 'parsa';
ERROR 1227 (42000): Access denied; you need (at least one of) the CREATE USER pr
ivilege(s) for this operation
I tried to sign in as root:
mysql> mysql -u root -p;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'mysql
-u root -p' at line 1
mysql> mysql -u root -p root;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'mysql
-u root -p root' at line 1
No, you should run mysql -u root -p in bash, not at the MySQL command-line.
If you are in mysql, you can exit by typing exit.
You may need to set up a root account for your MySQL database:
In the terminal type:
mysqladmin -u root password 'root password goes here'
And then to invoke the MySQL client:
mysql -h localhost -u root -p
I was brought here by a different problem.
Whenever I tried to login, i got that message because instead of authenticating correctly I logged in as anonymous user. The solution to my problem was:
To see which user you are, and whose permissions you have:
select user(), current_user();
To delete the pesky anonymous user:
drop user ''#'localhost';
This is something to do with user permissions. Giving proper grants will solve this issue.
Step [1]: Open terminal and run this command
$ mysql -uroot -p
Output [1]:
This should give you mysql prompt shown below
Step [2]:
mysql> CREATE USER 'parsa'#'localhost' IDENTIFIED BY 'your_password';
mysql> grant all privileges on *.* to 'parsa'#'localhost';
Syntax:
mysql> grant all privileges on `database_name`.`table_name` to 'user_name'#'hostname';
Note:
hostname can be IP address, localhost, 127.0.0.1
In database_name/table_name, * means all databases
In hostname, to specify all hosts use '%'
Step [3]: Get out of current mysql prompt by either entering quit / exit command or press Ctrl+D.
Step [4]: Login to your new user
$ mysql -uparsa -pyour_password
Step [5]: Create the database
mysql> create database `database_name`;
You might want to try the full login command:
mysql -h host -u root -p
where host would be 127.0.0.1.
Do this just to make sure cooperation exists.
Using mysql -u root -p allows me to do a a lot of database searching, but refuses any database creation due to a path setting.
If you are in a MySQL shell, exit it by typing exit, which will return you to the command prompt.
Now start MySQL by using exactly the following command:
sudo mysql -u root -p
If your username is something other than root, replace 'root' in the above command with your username:
sudo mysql -u <your-user-name> -p
It will then ask you the MySQL account/password, and your MySQL won't show any access privilege issue then on.
First, if you are unfamiliar with the command line, try using phpmyadmin from your webbrowser. This will make sure you actually have a mysql database created and a username.
This is how you connect from the command line (bash):
mysql -h hostname -u username -p database_name
For example:
fabio#crunchbang ~ $ mysql -h 127.0.0.1 -u fabio -p fabiodb
connect mysql with sudo & gives permission for the necessary user using,
sudo mysql -u user;
GRANT ALL PRIVILEGES ON database_name.* TO 'user'#'localhost';
#Nickparsa … you have 2 issues:
1). mysql -uroot -p
should be typed in bash (also known as your terminal) not in MySQL command-line. You fix this error by typing
exit
in your MySQL command-line. Now you are back in your bash/terminal command-line.
2). You have a syntax error:
mysql -uroot -p;
the semicolon in front of -p needs to go. The correct syntax is:
mysql -uroot -p
type the correct syntax in your bash commandline. Enter a password if you have one set up; else just hit the enter button. You should get a response that is similar to this:
Hope this helps!
Most Developers log-in to server(I assume you r having user-name and password for mysql database) then from Bash they switch to mysql> prompt then use the command below(which doesn’t work
mysql -h localhost -u root -p
What needs to be done is use the above command in the bash prompt--> on doing so it will ask for password if given it will take directly to mysql prompt and
then database, table can be created one by one
I faced similar deadlock so sharing the experience
I had the command correct per above answers, what I missed on was on the Workbench, where we mention 'Limit Connectivity from Host' for the user, it defaults to "%" - change this to "localhost" and it connects fine thereafter!
I'm using roles to confer least privilege on my database application users. I kept getting 'ERROR 1044 (42000): Access denied for user...' until I RTFM and discovered I had to give each user a default role(s) in order their account could be authenticated when they logged in.
#create a role
CREATE ROLE 'rolename';
#give necessary privileges to role
GRANT INSERT, UPDATE, DELETE, SELECT ON database.table TO 'rolename';
#create user
CREATE USER 'username'#'host' IDENTIFIED BY 'password';
#give the user a role(s)
GRANT 'rolename' TO 'username'#'host';
#set the user's default otherwise it's ERROR 1044
SET DEFAULT ROLE 'rolename' FOR 'username'#'host';
I installed mysql on ubuntu server and did not specify password. When I do
mysql -u root -p
it prompts for password and without providing any input I just hit enter and it works.
Now I need to perform some operation on the database using cron job. My cron job does not work because mysql prompts for a password. I tried doing
mysql -u root -p'' my_database
but that did not work either.
Any suggestion?
Go like this mysql -u root --password="" dbname
Try not asking mysql to prompt for the password, 'mysql -u myuser'. I would suggest you create an account with only the required privileges to do this. Also limit its access to localhost. Put a password on root.
I installed mysql on ubuntu server and did not specify password. When
I do
mysql -u root -p
-p brings up the password prompt. If you do not have a password, then you do not want to do that.
Just write:
mysql -u root
For the love of god, get a password on that account!
For passing the password in the command use -p$PASSWORD. In the following example, user/password is root/root:
mysql -proot -D my-db -u root -h 127.0.0.1 -e "select * from my_table"
IMPORTANT: notice that there is no space between -p and the password in -proot
Check MySQL Documentation for how to reset your password, since I found no way to enter a password either. You could use the following: http://dev.mysql.com/doc/mysql-windows-excerpt/5.0/en/resetting-permissions-windows.html
Which states that you have to create a file with the following query:
UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
FLUSH PRIVILEGES;
And then start up mysqld service with the --init-file parameter (see the documentation for more information about this). This should reset your root password.
Why don't you specify a password for root? For security reasons and your script would work.
Mysql's "root" account should have a password; otherwise anyone with an account on your machine has full access to the database.
Set a password (e.g. with SET PASSWORD)
Add the password to ~/.my.cnf
If you want more sane authentication options, I recommend Postgres.