I'm using MySQL 5.0 and I created a new user in my database:
create user 'johann'#'localhost' identified by 'johann22';
grant select on jewellery.customers to 'johann'#'localhost';
Now I'd like to connect as that new user but every time a quit MySQL, the command directly prompt me the password of 'root'
I have already tried to connect with root then connect to as the new user using this code:
-u johann -p johann22;
but it says that I have a syntax error.
-u johann -p johann22; is not an SQL command you can run in the mysql client. Those are command-line options for the mysql client.
So you would run this in your shell (not in the mysql client):
mysql -u johann -pjohann22
Also notice that you must NOT have a space between -p and the password. If you have a space, the -p means to prompt you for a password, then the word following the space (johann22) is the name of the database.
Related
I am trying to connect to MySQL database from MySQL shell on windows.
No matter what I type in MySQL shell, it keeps giving me error : 'Not connected'.
Query eg 1 : mysql --host=localhost --port=3306 --user=root -p;
Query eg 2 : mysql -u root -p
O/P : ERROR: Not connected
I have MySQL server installed on my machine. Also MySQL service is running in the background.
Also, I was able to connect from MySQL workbench.
ERROR MESSAGE
MySQL Workbench Connection
My temporary workaround is that I make use of ssl protocol to connect to MySQL server :
MySQL> \connect root#localhost
MySQL localhost:33060+ ssl SQL > show databases;
The first step is that you need to check if you are in the MYSQL Shell SQL mode or JS mode.
Then if you are in SQL mode then you are good to go else you need to switch to SQL mode by this command
\sql
The next step is to connect using this command
\connect root#localhost
In your case, you might have given the privilege as the IP address so you need to check your localhost IP which can be done by this command in your command prompt.
ipconfig and then just check the IP address and put it in place of localhost in the previous command. If this still doesn't works then put 127.0.0.1:3306.
After this, it will prompt to add or save the password , enter a unique password there.
After this you are good to go and check the user and localhost after this by this command
SELECT user, host FROM mysql.user;
Try mysql -u root -p
I haven't used MySQL shell, I typically use gitbash and it works just fine
I had faced the same issue on my Windows 10 machine with MySQL 5.7 and the following commands helped me:
mysqlsh.exe - to open mysql shell; then
\sql - to start working with SQL;
finally:
\connect root#127.0.0.1:3306
You can use:
mysql -uroot -hlocalhost -P3306 -p
or
mysql -uroot -h127.0.0.1 -P3306 -p
or
mysql -uroot -p
I am trying to figure out what the mysql -u root -p command does.
I have googled the command but I can't find any good results.
mysql -u root -p means, that you trying to connect to MySQL shell with parameters - -u parameter specified MySQL user name.
-u, --user=name User for login if not current user.
In your case it's root user.
-p, --password[=name]
Password to use when connecting to server. If password is
not given it's asked from the tty.
You can type mysql --help from the command line for more information about all available parameters.
Good luck.
It logs you into mysql as the root user. After -p (Immediately after it incidentally, no spaces) you would include the password.
`mysql -u root -p`
Its initiate a connection of MySQL.
-u means that we are going to connect with a username root
-p means that we will enter username's password
Check man mysql
Your command tries to connect to MySQL on localhost with user "root" and asking for a password
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 to execute MySQL command without entering the MySQL prompt any interaction. For this I have to specify password at command-line , such as
mysql -u 'user' -p'password' command;
Though my user which is root is not having password (checked in mysql.user table) I am unable to use it for running the MySQL commands at commandline and not entering prompt.
I have tried using below things:
mysql -u root 'followed by query'
ERROR 1045 (28000): Access denied for user 'root'#'localhost' (using password: YES)
mysql -u root -p 'followed by query'
Prompts for password and when I just press enter it goes into prompt.
Please suggest how to execute this without any interaction (Using Enter key).
Query should be specified with -e option so you should try something like this:
mysql -u root -e 'followed by query'
First of all make sure MySQL user that you are using has access to database that you are trying to connect. To get execute MySQL command with out entering in MySQL prompt Also change your query like below.
mysql --user=mysql_username --password=mysql_password -e "select * from database.table";
I am following this tutorial: http://dev.mysql.com/doc/refman/5.7/en/connecting-disconnecting.html
However when I run MySql command line client I automatically get asked for a password when I enter it I get connected automatically to a localhost database, how do I access other database's using something like the following as shown in the tutorial example?
shell> mysql -h host -u user -p
Enter password: ********
shell> mysql nameofdatabase -uusername -ppassword
You can put a space in between -u username but not between the -p and password.
There are multiple ways to access mysql on the command line. If you wish to connect to another database server, you need to add -h <hostname> to your mysql command. Without this, mysql assumes you want to connect to the local mysql server.
If you mean that you want to connect to another database on a host, just specify that database at the end of your command line.
$ mysql -u username -ppassword second_database
Note, there is NO space between -p and password. If -p is followed by a space, mysql will prompt you to enter a password interactively. Which you can do, if that is what you want.
$ mysql -u username -p third_database
Enter password: *********
Another way to connect would be to create a file in your home directory named .my.cnf. This file should contain the following:
[client]
user=username
password=yourpassword
If you have any special characters in your password, you will need to quote it. Having this file allows you to not need to enter any username or password on your command line:
$ mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
....
mysql>