I have a Raspberry Pi that stores temperature data for homebrewing activity. I am making a Spring MVC application on my computer and I want to tap the data. Both my Pi and my computer are on the local network. I can SSH and FTP into my RPi perfectly.
mysql --192.168.1.102 --u root -p db
Causes a "Can't connect to MySQL server on '192.168.1.102'".
My Java application isn't connecting either, obviously.
SHOW VARIABLES WHERE VARIABLE_NAME = 'port' ;
returns the default port, 3306.
Is there a setting that must be enabled to allow remote connections into MySQL?
I have recently had the same problem myself. I got it working by doing the following:
Edit MySQL configuration
By default, MySQL is not configured to accept remote connections. You can enable remote connections by modifying the configuration file:
Find the
[mysqld]
section. The line you need to alter isbind-address
, which should be set to the default value of127.0.0.1
. You want to edit this line to instead show the IP of your RPi on the network (which would seem to be 192.168.1.102 from your example). Write the changes.Restart the MySQL service
Setup MySQL permissions
Connect to your MySQL instance as root:
Create a user:
Grant permissions to the relevant databases and tables:
That should hopefully do it!
The following worked for me, courtesy of a comment found on this instructable:
GRANT ALL ON *.* TO 'root'@'192.168.1.%' IDENTIFIED BY 'your_password_here';
(I used 192.168.1.% so that any computer on my network can connect to it)sudo nano /etc/mysql/my.cnf
) file and look for "bind-address" and comment this out (put a # in front of the line)service mysql reload
)service mysql restart
)If your issue is not able to remotely connect with MySQL on Raspberry Pi, then try below steps. I had the same issue and got it resolved by performing below commands.
1)
sudo nano /etc/mysql/my.cnf
2)
# bind-address = 127.0.0.1
// comment this line out3)
sudo /etc/init.d/mysql restart
//restart mysql4)
sudo mysql -u root -p
//login to mysql cli as user 'root'5)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'beta' WITH GRANT OPTION;
Here 'root' is the mysql user and 'beta' is the password and here privileges are set for 'root'.Change it accordingly and execute above query in mysql cli.
Good Luck !!!