MySQL
Installation
sudo apt update && sudo apt-get install mysql-server libmysqlclient-dev -y
Skip for Now! Root password empty.
sudo mysql_secure_installation
Codespaces
Some extra steps are required.
Change the permissions on mysql folder:
sudo chmod -R 777 /var/run/mysqld/
Change the way the root@localhost is authenticated. Otherwise get Access Denied. Also refer to this article.
sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';
Can check it using the following commands:
USE mysql;
SELECT User, Host, plugin FROM mysql.user;
Bash script to automate:
sudo apt update && sudo apt-get install mysql-server libmysqlclient-dev -y
sudo chmod -R 777 /var/run/mysqld/
sudo service mysql start
sudo mysql < rootuserpwd.sql
Where rootuserpwd.sql:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';
Commands
Mysql Version
mysql --version
Or
mysql -V
Login
sudo mysql
Or
mysql -u root -p
Database status
sudo service mysql status
Stop Database
sudo service mysql stop
Start Database
sudo service mysql start
Root password blank
First login:
mysql -u root -p
Set to blank:
SET PASSWORD FOR 'root'@'localhost' = '';
Reset Password
Reference article - https://www.techrepublic.com/article/how-to-set-change-and-recover-a-mysql-root-password/
Create a initialize file:
echo "ALTER USER 'root'@'localhost' IDENTIFIED BY 'mark';" >> ~/mysql-pwd
Stop mysql:
sudo service mysql stop
Initialize:
sudo mysqld -init-file=~/mysql-pwd
Start again
sudo service mysql start
Check:
mysql -u root -p
Text File Commands
mysql < reset_root_password.sql>
Where the file contains:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';
Notes
MYSQL_PWDis an environment variable that can be set for the root password.