Difference between revisions of "Oracle VM VirtualBox Manager"

Line 1: Line 1:
 
to install linux ubuntu, go and download iso files : https://www.ubuntu.com/download/desktop/thank-you?country=GB&version=18.04.1&architecture=amd64
 
to install linux ubuntu, go and download iso files : https://www.ubuntu.com/download/desktop/thank-you?country=GB&version=18.04.1&architecture=amd64
  
==Internet Connection on VM==
+
=Internet Connection on VM=
 
I was having the same problem on Ubuntu 12.10 64bit using Virtualbox 4.2.22. Here are the steps I took to solve my problem:
 
I was having the same problem on Ubuntu 12.10 64bit using Virtualbox 4.2.22. Here are the steps I took to solve my problem:
  
Line 15: Line 15:
 
*Hit OK to save your changes
 
*Hit OK to save your changes
 
*Start your VM
 
*Start your VM
 +
 +
=to remote access=
 +
remove OpenSSH:
 +
Code:
 +
<source>
 +
sudo apt-get remove openssh-client openssh-server
 +
</source>
 +
 +
install OpenSSH again:
 +
Code:
 +
<source>
 +
sudo apt-get install openssh-client openssh-server
 +
</source>
 +
 +
=mysql=
 +
The reason is that recent Ubuntu installation (maybe others also), mysql is using by default the UNIX auth_socket plugin.
 +
 +
Basically means that: db_users using it, will be "auth" by the system user credentias. You can see if your root user is set up like this by doing the following:
 +
 +
<source>
 +
$ sudo mysql -u root # I had to use "sudo" since is new installation
 +
 +
mysql> USE mysql;
 +
mysql> SELECT User, Host, plugin FROM mysql.user;
 +
 +
+------------------+-----------------------+
 +
| User            | plugin                |
 +
+------------------+-----------------------+
 +
| root            | auth_socket          |
 +
| mysql.sys        | mysql_native_password |
 +
| debian-sys-maint | mysql_native_password |
 +
+------------------+-----------------------+
 +
</source>
 +
 +
As you can see in the query, the root user is using the auth_socket plugin
 +
 +
There are 2 ways to solve this:
 +
 +
*You can set the root user to use the mysql_native_password plugin
 +
*You can create a new db_user with you system_user (recommended)
 +
 +
Option 1:
 +
<source>
 +
$ sudo mysql -u root # I had to use "sudo" since is new installation
 +
 +
mysql> USE mysql;
 +
mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
 +
mysql> FLUSH PRIVILEGES;
 +
mysql> exit;
 +
 +
$ service mysql restart
 +
</source>
 +
 +
Option 2: (replace YOUR_SYSTEM_USER with the username you have)
 +
<source>
 +
$ sudo mysql -u root # I had to use "sudo" since is new installation
 +
 +
mysql> USE mysql;
 +
mysql> CREATE USER 'YOUR_SYSTEM_USER'@'localhost' IDENTIFIED BY '';
 +
mysql> GRANT ALL PRIVILEGES ON *.* TO 'YOUR_SYSTEM_USER'@'localhost';
 +
mysql> UPDATE user SET plugin='auth_socket' WHERE User='YOUR_SYSTEM_USER';
 +
mysql> FLUSH PRIVILEGES;
 +
mysql> exit;
 +
 +
$ service mysql restart
 +
</source>
 +
 +
Remember that if you use option #2 you'll have to connect to mysql as your system username (mysql -u YOUR_SYSTEM_USER)
 +
 +
Note: On some systems (e.g., Debian stretch) 'auth_socket' plugin is called 'unix_socket', so the corresponding SQL command should be: UPDATE user SET plugin='unix_socket' WHERE User='YOUR_SYSTEM_USER';

Revision as of 03:50, 29 October 2018

to install linux ubuntu, go and download iso files : https://www.ubuntu.com/download/desktop/thank-you?country=GB&version=18.04.1&architecture=amd64

Internet Connection on VM

I was having the same problem on Ubuntu 12.10 64bit using Virtualbox 4.2.22. Here are the steps I took to solve my problem:

Open Virtualbox Manager

  • Select the machine you cannot get internet on in the left pane
  • Click the Settings button in the top menu
  • Click Network in the left pane in the settings window
  • Switched to Bridged Adapter in the Attached to drop-down menu
  • Select the name of the network adapter you are currently using on your host machine. I am using wireless so I chose eth0 which is my wireless network adapter. You can check which adapter you are currently using by opening the terminal (CTRL+ALT+T by default) and running ifconfig. It will probably be the eth adapter that shows an inet addr and shows data transfer next to RX bytes.
  • Under Advanced, make sure the machine is using the Desktop Adapter Type
  • Under Advanced, make sure Promiscuous Mode is set to Allow VMs
  • Under Advanced, make sure Cable connected is checked on
  • Hit OK to save your changes
  • Start your VM

to remote access

remove OpenSSH: Code:

sudo apt-get remove openssh-client openssh-server

install OpenSSH again: Code:

sudo apt-get install openssh-client openssh-server

mysql

The reason is that recent Ubuntu installation (maybe others also), mysql is using by default the UNIX auth_socket plugin.

Basically means that: db_users using it, will be "auth" by the system user credentias. You can see if your root user is set up like this by doing the following:

$ sudo mysql -u root # I had to use "sudo" since is new installation

mysql> USE mysql;
mysql> SELECT User, Host, plugin FROM mysql.user;

+------------------+-----------------------+
| User             | plugin                |
+------------------+-----------------------+
| root             | auth_socket           |
| mysql.sys        | mysql_native_password |
| debian-sys-maint | mysql_native_password |
+------------------+-----------------------+

As you can see in the query, the root user is using the auth_socket plugin

There are 2 ways to solve this:

  • You can set the root user to use the mysql_native_password plugin
  • You can create a new db_user with you system_user (recommended)

Option 1:

$ sudo mysql -u root # I had to use "sudo" since is new installation

mysql> USE mysql;
mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> exit;

$ service mysql restart

Option 2: (replace YOUR_SYSTEM_USER with the username you have)

$ sudo mysql -u root # I had to use "sudo" since is new installation

mysql> USE mysql;
mysql> CREATE USER 'YOUR_SYSTEM_USER'@'localhost' IDENTIFIED BY '';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'YOUR_SYSTEM_USER'@'localhost';
mysql> UPDATE user SET plugin='auth_socket' WHERE User='YOUR_SYSTEM_USER';
mysql> FLUSH PRIVILEGES;
mysql> exit;

$ service mysql restart

Remember that if you use option #2 you'll have to connect to mysql as your system username (mysql -u YOUR_SYSTEM_USER)

Note: On some systems (e.g., Debian stretch) 'auth_socket' plugin is called 'unix_socket', so the corresponding SQL command should be: UPDATE user SET plugin='unix_socket' WHERE User='YOUR_SYSTEM_USER';