wsl安装mysql初始化数据库并设置服务自启
既然将wsl作为虚拟环境来使用,那我们就离不开数据库,刚好今天想部署一个项目,就先装一个mysql,结果在安装过程中遇到很多问题,这里也记录一下。
安装【以Ubuntu为例】
mysql的安装还是比较简单的,我们可直接执行以下命令等待完成即可。
apt-get update;
apt-get install mysql-server;
这一步一般都没问题,但是,安装过程中并没有提供修改root密码的操作,这就导致数据库安装完成后,我们没办法登录~~~,那么该如何修改root的密码呢?
启动mysql服务
#check the status of mysql
service mysql status;
#start mysql
service mysql start;
#stop mysql
service mysql stop;
#restart msyql
service mysql restart;
修改root密码
mysql在安装的过程中,提供了一个默认的登录用户与密码,我们可以在路径/etc/mysql/debian.cnf文件内查看,如图
我们通过[mysql_upgrade]节下的user和password登录即可
如
mysql -udebian-sys-maint -phXqminSvRPXfSRgd
登录成功后,我们可以切换到mysql对root的密码进行修改,具体操作如下:
switch database
use msyql;
#update root's password
alter user 'root'@'localhost' identified with mysql_native_password by 'root';
#write privileges
flush privileges;
之后即可quit/exit退出。
这里要注意,最好重启一下mysql服务,以使配置生效。
然后通过root登录
mysql -uroot -proot
mysql环境搭建好了,那该如何部署我们的数据库呢?
数据库创建与初始化
mysql有一些列的创建、查询、新增、删除等的命令。
如果我们要部署一个项目,肯定会有现成的.sql文件供部署,那我们该如何操作呢?
1.首先,创建数据库名称。
create test1;
use test1;
创建test1,并切换到该库。
2.初始化表结构。
mysql通过source命令来加载sql文件
source /path
source /e/demo/a.sql;
一般的,mysql数据库会将结构和数据分开导出到不同的.sql文件,我们只需先执行结构,在初始化数据即可。
3.创建完成后,即可通过命令简单验证
show tables;
select * from table_A;
到这里,本篇内容基本上就结束了,还有以下几点,想在这里提一下,
其他
加载.sql文件其实有2种方式,刚刚说的是登录数据库之后的操作方式,其实还有另一种,使用就看情况和个人习惯了。
#mysql -uuser -ppasswd database </path
mysql -uroot -proot </e/test/a.sql
mysql安装完成后,直接启动mysql,有可能报如下之类的错误。
Access denied for user ' root ' @ ' localhost '
此时不必在意,执行完service msyql restart之后,直接执行通过默认用户密码登录即可。因为此时,查看服务状态的话,有可能是stopped状态,但是确实可以登录,并进行root密码的修改,修改完成后,重新启动服务,则服务正常运行。
通过Navicate或SQLyog等工具进行连接时,提示找不到服务器。
这个是因为安装MySQL时,设置了root用户只能本机登录,按如下进行修改即可。
use mysql;
set host='%' where user='root'; update user
flush privileges;
quit;
mysql开机启动
比如,我们想启动ssh则可以
wsl -d ubuntu-20.04 -u root /etc/init.d/ssh start
那随着我们的使用,我们要想开机启动的服务肯定越来越多,那我们是不是可以把他们放到一块来启动呢?毫无疑问是可以的,我们,可以在特定路径下建一个start.wsl文件,比如放在/etc/start.wsl下,我们可以编辑start.wsl内容为
service ssh restart
service mysql restart
#添加想要启动的服务
然后,在启动wsl的时候,添加附加命令
wsl -d -ubuntu-20.04 -u root /etc/init.wsl
即可启动文件内的全部服务,因为我们已经指定了默认版本和默认用户,所以可以简化为
wsl /etc/init.wsl
* Restarting OpenBSD Secure Shell server sshd [ OK ]
* Stopping MySQL database server mysqld [ OK ]
* Starting MySQL database server mysqld
到此,我们的服务开机启动也搞定了。
后续内容将持续更新,有任何疑问或建议欢迎留言和讨论。
码字不易,还望一键三连支持一下哟。