Virtual Box ( ubuntu, vagrant, homestead ) sites connect to host database (ubuntu, mysql) - mysql

I am pretty new to VirtualBox or network, port forward, etc. I am just a front-end Developer.
I want to connect the MySQL databases in my host os running ubuntu, to the websites running in virtual box (vagrant, homestead, ubuntu 20.04).
Thanks

Welcome to stackoverflow! First of all, in order to connect your virtual box to MySQL db you have to modify the Homestead.yaml file. I am giving you an example below.
Then, what do you exactly want to do? I suppose you have a project and you want to connect it with MySQL db? Maybe, a .env file where you can put the db connection credentials. For example:
Please feel free to give us more details about what you want to do, what you have already tried etc.

Related

MySql server not showing proper databases from Ubuntu server

I'm using wsl2 on a windows machine. I want to view my databases that I have on mysql server ubuntu in a GUI such as mysql workbench (on windows) but it seems as the two are not linked. In the pictures provided you can see that when I login to root, it displays different databases, I also use different passwords for root on both servers. When I try to use the root password from the ubuntu server in workbench, I get the error that I cannot connect to the database server.
Ubuntu databases
MySql workbench databases
MySql workbench config
MySql workbench error
UPDATE 2022
I found myself in this same need, and found a good resource that tackles this issue rather nicely. The solution itself predates even this question, funnily enough.
Long story short, check the following GitHub repository. Instructions are available and I can confirm it works on Windows 10.0.19041.1415 and WSL2.
https://github.com/shayne/go-wsl2-host
========================================================
WSL doesn't use the same IP as Windows, meaning you can't access it using localhost. Also, WSL IP changes everytime you boot it, meaning that the credentials for the connection will work only once.
In the sister community SuperUser, this has been discussed and some workarounds are avaliable, but I can't tell if they will work specifically with MySQL Workbench, as they ofter require you to use PowerShell/CMD.
Please, refer to the following discussions, which also provide further sources on the topic (There is one in particular that might be useful if you are running Windows 10 Pro).
Make IP address of WSL2 static
localhost and 127.0.0.1 working but not ip address in wsl windows 10
There are several requests to allow us to set WSL IP statically, so we can register it as a host in Windows DNS Host file and use that alias instead of the IP while setting up a connection (or use the IP itself, since it would be static anyway), but it is not ready yet AFAIK.
After reading the answer from #Jetto, I thought you could create a batchfile like this:
#ECHO OFF
wsl export wsl=$(hostname -I); sed -i -e "s/172.[0-9]*.[0-9]*.[0-9]*/${wsl/ /}/g" /mnt/c/Users/*username*/AppData/Roaming/MySQL/Workbench/connections.xml
This will replace the ip-address to the current ip-address of your wsl instance (relying on the fact that is starts with 172.)
If you start MySQL Workbench after running this script, you should be able to connect to MySQL (or MariaDB) which is running in the WSL2 session.
Disclaimer: I am not responsible for the fact that you did not make a backup of the file connections.xml 😉
P.S. In case you wonder: Yes this instance on my computer uses port 3356. But 3306 should work too if you do not have a local MySQL running.

Unable to connect to localhost when I want to connect my sql workbench with cloud AWS

I want to do the test hahaha, that I have to access their database. I already install my sql web community installer and I did it.
I can connect to my own username and pass, but when I want to access database in AWS Cloud, it became like this
i's been a long time I didnt manage to work with sql. I just do the queries, I never do this at the start.
Thank you so much if anyone want to help
Two things you need to make this happen.
Make sure you have configured your RDS instance to allow public access.
Make sure you have properly setup the inbound rules to let the IP of your development machine access your RDS instance. See https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.RDSSecurityGroups.html.
Once you do these, you can connect as shown here:

How can i grant access to mySQL database to other computer within my house?

I'm a beginner in SQL so i'm sorry if the question is too basic.
I just created a database in MySQL Workbench in my computer and i would like to be able to access and modify the database from another computer within my house. I read some solutions but they all require using some external product, is there a way and how can i do this by the MySQL Workbench GUI, or maybe other functionalities from MySQL?
I also installed MySQL community server on the other computer that i would like to connect my database to.
Thanks!
If it's a home network, and both of you are connected via same router, then you can connect to mysql server on the other device using http://ip_of_machine_running_mysql:3306.
ip_of_machine_running_mysql should be the ip of the machine running mysql server.
Worth to note that you need to allow remote connection to mysql if you haven't already done so when you were doing mysql installation.
The steps for enabling remote access differs for your os(windows, ubuntu, mac), but you can easily find tutorials and how to's for changing such configuration.
https://www.brightfunction.co.uk/connecting-to-mysql-server-across-a-local-windows-network/
https://www.techrepublic.com/article/how-to-set-up-mysql-for-remote-access-on-ubuntu-server-16-04/

how to change Mysql server hostname

I run my service in docker-compose. And MySQL host name is “mysql”, when I develop in my computer, MySQL host name is “localhost”.
Now I want to change my computer MySQL hostname to “mysql”. So I can connect MySQL on my computer by mysql+pool://root:password#mysql/test_db.
Please help me, I find solution spend lots of time.
It is recommended to separate this connection string setting to an environment variable.
If you really want to use mysql, you can modify your OS's hosts file (e.g. for macOS or many linux distros, it should be /etc/hosts).
and put 127.0.0.1 mysql at the end of the file.

Unable to find or create new databases using Sequel Pro, but can using phpmyadmin

I am using MAMP Pro and I am having an issue where I cannot find existing databases on Sequel Pro, nor can I create new databases. However, on phpmyadmin, I can see and edit the existing databases and create new ones without any issue. I believe the issue lies with the mysql version on Sequel Pro.
As you can see, on the left, phpmyadmin is running on the MySql server version 5.6.35, as is MAMP Pro, which is in the center of the image. However, Sequel Pro, at the bottom of the image, is running on MySql server version 5.7.18.
I really appreciate any help that can be given, I am close to tearing my hair out!
Thank you!
Clearly the problem is that you're connecting to two different MySQL instances.
Unless you have a good reason to run two MySQL servers on your computer, you should consolidate the databases and remove one. That way you don't get confused when trying to connect. Perhaps you had MAMP installed and also installed another MySQL server; or vice versa. Be careful not to remove the datadir from the MySQL server you're using though, and take backups before you do anything. That's aside from the actual problem, anyway.
You can use the STATUS SQL command to see the connection information — it looks like Sequel Pro is connected via a socket, and STATUS will tell you the path to the socket. Run the command from phpMyAdmin as well to see how it's connecting (it's going to be socket or TCP/IP networking); you can the configure Sequel Pro to connect using the same connection settings phpMyAdmin is using. You could, if you really wanted to, run multiple MySQL instances alongside each other and configure your clients to connect to the proper one (phpMyAdmin at least allows connecting to multiple servers, I assume Sequel pro does as well). You'd use either a different socket or different network port numbers for each server instance — as well as a different datadir for each, since MySQL would not deal well with sharing the data between different versions of the server, especially if they're running concurrently.
To summarize, tell Sequel Pro to connect using the same settings phpMyAdmin is using.
EDIT:
You've determined that MAMP and phpMyAdmin are connecting via the socket /Applications/MAMP/tmp/mysql/mysql.sock — which means they're using the MySQL installed by MAMP (presumably you've installed another MySQL server independently of that). From the Sequel Pro "QUICK CONNECT" page, click over to the "Socket" tab and enter the correct socket like so:
I believe the "Name" field can be anything you prefer, although I don't really know this software program.
If you every use other software, try to remember that '127.0.0.1' and 'localhost' are two very different things to MySQL; the first one always implies using TCP/IP networking and the latter uses sockets (Sequel Pro seems to deal correctly with it so it's not relevant on this connection screen). You, of course, want 'localhost' since you're using sockets.