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
mysql>use msyql;

#update root's password
mysql>alter user 'root'@'localhost' identified with mysql_native_password by 'root';

#write privileges
mysql>flush privileges;

之后即可quit/exit退出。

这里要注意,最好重启一下mysql服务,以使配置生效。

然后通过root登录

mysql -uroot -proot

mysql环境搭建好了,那该如何部署我们的数据库呢?

数据库创建与初始化

mysql有一些列的创建、查询、新增、删除等的命令。

如果我们要部署一个项目,肯定会有现成的.sql文件供部署,那我们该如何操作呢?

1.首先,创建数据库名称。

mysql>create test1;
mysql>use test1;

创建test1,并切换到该库。

2.初始化表结构。

mysql通过source命令来加载sql文件

#source /path
mysql>source /e/demo/a.sql;

一般的,mysql数据库会将结构和数据分开导出到不同的.sql文件,我们只需先执行结构,在初始化数据即可。

3.创建完成后,即可通过命令简单验证

mysql>show tables;
mysql>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用户只能本机登录,按如下进行修改即可。

mysql>use mysql;
mysql>update user set host='%' where user='root';
mysql>flush privileges;
mysql>quit;

 

  • mysql开机启动

           其实,上篇的ssh开机启动就没配置成功,这里一并说一下,要解决这个问题,我们不能按单独的 系统去处理,因为我们这里是wsl,应该是有所差别。

           网上有很多的教程,但并不是很简单,这里提供一种简介的方式,可以自由配置。

           我们知道,通过wsl -d 系统版本 -u username 要启动的服务 start/restart可以启动我们要启动的服务,

比如,我们想启动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                                                                                

到此,我们的服务开机启动也搞定了。

 

后续内容将持续更新,有任何疑问或建议欢迎留言和讨论。

码字不易,还望一键三连支持一下哟。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值