iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Ubuntu18.04下安装MySQL5.7(支持win10-wsl环境)
  • 314
分享到

Ubuntu18.04下安装MySQL5.7(支持win10-wsl环境)

Ubuntu18.04下安装MySQL5.7(支持win10-wsl环境) 2017-12-28 01:12:25 314人浏览 猪猪侠
摘要

注意: 本文操作环境为win10系统wsl下的ubuntu18.04,对于原生的Ubuntu18.04同样适用。Mysql默认版本为5.7,其他版本不适用。 安装步骤 更新源: sudo apt update 安装my

Ubuntu18.04下安装MySQL5.7(支持win10-wsl环境)

注意: 本文操作环境为win10系统wsl下的ubuntu18.04,对于原生的Ubuntu18.04同样适用。Mysql默认版本为5.7,其他版本不适用。

安装步骤

更新源:

sudo apt update

安装mysql

sudo apt install mysql-server 

wsl下使用上述命令安装就直接安装上去了,没有设置密码的地方,这时候无论怎么登陆,都无法登录上去。

chenyc@DESKTOP-Q5J25HR:~$ mysql
ERROR 2002 (HY000): Can"t connect to local MySQL Server through Socket "/var/run/mysqld/mysqld.sock" (2)
chenyc@DESKTOP-Q5J25HR:~$ mysql -u root -p
Enter passWord:
ERROR 2002 (HY000): Can"t connect to local MySQL server through socket "/var/run/mysqld/mysqld.sock" (2)
chenyc@DESKTOP-Q5J25HR:~$

设置root用户密码:

chenyc@DESKTOP-Q5J25HR:~$ sudo mysql_secure_installation

Securing the MySQL server deployment.

Enter password for user root:
Error: Can"t connect to local MySQL server through socket "/var/run/mysqld/mysqld.sock" (2)

发现无法设置,看报错信息,说的是不能连接到mysqld.sock套接字,猜想是mysql服务没有开启。

开启mysql服务:

chenyc@DESKTOP-Q5J25HR:~$ sudo service mysql start
 * Starting MySQL database server mysqld         
No directory, logging in with HOME=/               [ OK ]

重新设置密码:
使用sudo mysql_secure_installation命令,有几个地方需要用户确认。

Press y|Y for Yes, any other key for No:y

y,前面提示大致的意思是:默认使用空的密码连接,该种连接方式可以作为测试使用,但是不安全,问是否要重新设置密码。

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0

这里是让选择密码强度,从前面提示可以知道,有LOWMEDIUMSTRONG三种强度可选,我们选择0即可。

New password:

Re-enter new password:

这个没什么好说的,让设置密码,并确认新密码。

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y

问是否移除匿名用户,匿名用户留着也没什么用,可以移除掉,选择y

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : n

是否禁止root用户远程登录,在没有设置其他用户之前,只能通过root用户登录,所以不能禁止,选择n

Remove test database and access to it? (Press y|Y for Yes, any other key for No) : n

是否移除测试数据库,选择n

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : n

是否重新载入特权表,最好不动它,选否。

下面是设置密码的全过程。

chenyc@DESKTOP-Q5J25HR:~$ sudo mysql_secure_installation

Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?

Press y|Y for Yes, any other key for No: y

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0
Please set the password for root here.

New password:

Re-enter new password:

Estimated strength of the password: 25
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation Go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.


NORMally, root should only be allowed to connect from
"localhost". This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : n

 ... skipping.
By default, MySQL comes with a database named "test" that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.


Remove test database and access to it? (Press y|Y for Yes, any other key for No) : n

 ... skipping.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : n

 ... skipping.
All done!

以上设置完成后,使用刚刚设置的root用户密码,再次连接数据库,成功连接上。

chenyc@DESKTOP-Q5J25HR:~$ sudo mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 6
Server version: 5.7.29-0ubuntu0.18.04.1 (Ubuntu)

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type "help;" or "h" for help. Type "c" to clear the current input statement.

mysql>

编码设置

查看编码:

mysql> show variables like "character%";
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

可以看到,刚刚安装好的mysql默认有很多是latin1的编码格式,对汉字的支持不好,因此需要改成utf8编码格式。

修改mysql数据库编码的步骤:
1.停止mysql服务:

chenyc@DESKTOP-Q5J25HR:~$ /etc/init.d/mysql stop
 * Stopping MySQL database server mysqld                                  
cat: /var/run/mysqld/mysqld.pid: Permission denied
                                                                                                                                               [fail]

发现没有权限,加上sudo再去执行:

chenyc@DESKTOP-Q5J25HR:~$ sudo /etc/init.d/mysql stop
 * Stopping MySQL database server mysqld                           [ OK ] 

服务停止成功。
2.修改配置文件:
进入配置文件目录:

cd /etc/mysql/mysql.conf.d

修改之前先备份:

sudo cp mysqld.cnf mysqld.cnf.2

接下来修改配置文件,执行如下命令:

sudo vim mysqld.cnf

修改两个地方:

# 修改处1:添加以下2行 
[client] 
default-character-set=utf8
[mysqld]
# 修改处2:添加以下3行 
default-storage-engine=INNODB
character-set-server=utf8 
collation-server=utf8_general_ci

修改完成后,重启数据库:

chenyc@DESKTOP-Q5J25HR:~$ sudo service mysql start
 * Starting MySQL database server mysqld                                  [ OK ] 

再次登录,发现登不上了:

chenyc@DESKTOP-Q5J25HR:~$ mysql -u root -p
Enter password:
ERROR 1698 (28000): Access denied for user "root"@"localhost"

使用sudo cat /etc/mysql/debian.cnf查看debian-sys-maint密码,发现密码是下面这个玩意:

chenyc@DESKTOP-Q5J25HR:~$ sudo cat /etc/mysql/debian.cnf
# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host     = localhost
user     = debian-sys-maint
password = LMCuPijw9kX5cRsS
socket   = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host     = localhost
user     = debian-sys-maint
password = LMCuPijw9kX5cRsS
socket   = /var/run/mysqld/mysqld.sock

因此,可以使用debian-sys-maint用户先登录上去,修改密码:

chenyc@DESKTOP-Q5J25HR:~$ mysql -udebian-sys-maint -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 18
Server version: 5.7.29-0ubuntu0.18.04.1 (Ubuntu)

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type "help;" or "h" for help. Type "c" to clear the current input statement.

mysql>

使用上面的password,成功登录。
修改密码,执行如下语句:

UPDATE mysql.user SET authentication_string=PASSWORD("你的密码"), PLUGIN="mysql_native_password"
 WHERE USER="root";

执行时发现报错:

mysql> UPDATE mysql.user SET authentication_string=PASSWORD("cyc2010"), PLUGIN="mysql_native_password" WHERE USER="root";
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

说不符合安全规范,估计是之前设置安全级别的那地方的问题,需要重新设置一下:

mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)

validate_password_length(密码长度)参数默认为8,修改为1:

mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)

再次修改密码成功。

mysql> UPDATE mysql.user SET authentication_string=PASSWORD("cyc2010"), PLUGIN="mysql_native_password" WHERE USER="root";
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 1

授权远程登录:

mysql> grant all privileges on *.* to "root"@"%" identified by "cyc2010" with grant option;
Query OK, 0 rows affected, 1 warning (0.01 sec)

设置完成后,再次重启服务:

chenyc@DESKTOP-Q5J25HR:~$ sudo /etc/init.d/mysql restart
 * Stopping MySQL database server mysqld                                                                                                       [ OK ]  * Starting MySQL database server mysqld                                                                                                              No directory, logging in with HOME=/                    [ OK ]

使用root用户登录:

chenyc@DESKTOP-Q5J25HR:~$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 4
Server version: 5.7.29-0ubuntu0.18.04.1 (Ubuntu)

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type "help;" or "h" for help. Type "c" to clear the current input statement.

mysql>

成功登录,查看编码格式:

mysql> show variables like "character%";
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

发现都变成了utf8,说明设置成功了。

系统重启后失效问题

重启wsl-linux子系统:

//WSL-Ubuntu18.04 LTS 重启方法
//以管理员权限运行cmd
>net stop LxssManager	//停止
>net start LxSSManager	//启动

重启系统后,再次登录,发现又登不上了:

chenyc@DESKTOP-Q5J25HR:/mnt/c/Users/cheny$ mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can"t connect to local MySQL server through socket "/var/run/mysqld/mysqld.sock" (2)

看报错信息,应该是mysql服务没有启动,启动服务:

chenyc@DESKTOP-Q5J25HR:/mnt/c/Users/cheny$ sudo service mysql start
[sudo] password for chenyc:
 * Starting MySQL database server mysqld                                                                                         No directory, logging in with HOME=/
                                                                                                                          [ OK ]

再次登录,发现登陆成功。

chenyc@DESKTOP-Q5J25HR:/mnt/c/Users/cheny$ mysql -u root -p                                                                      Enter password:
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 4
Server version: 5.7.29-0ubuntu0.18.04.1 (Ubuntu)

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type "help;" or "h" for help. Type "c" to clear the current input statement.

mysql>
您可能感兴趣的文档:

--结束END--

本文标题: Ubuntu18.04下安装MySQL5.7(支持win10-wsl环境)

本文链接: https://www.lsjlt.com/news/5233.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • oracle怎么查询当前用户所有的表
    要查询当前用户拥有的所有表,可以使用以下 sql 命令:select * from user_tables; 如何查询当前用户拥有的所有表 要查询当前用户拥有的所有表,可以使...
    99+
    2024-05-14
    oracle
  • oracle怎么备份表中数据
    oracle 表数据备份的方法包括:导出数据 (exp):将表数据导出到外部文件。导入数据 (imp):将导出文件中的数据导入表中。用户管理的备份 (umr):允许用户控制备份和恢复过程...
    99+
    2024-05-14
    oracle
  • oracle怎么做到数据实时备份
    oracle 实时备份通过持续保持数据库和事务日志的副本来实现数据保护,提供快速恢复。实现机制主要包括归档重做日志和 asm 卷管理系统。它最小化数据丢失、加快恢复时间、消除手动备份任务...
    99+
    2024-05-14
    oracle 数据丢失
  • oracle怎么查询所有的表空间
    要查询 oracle 中的所有表空间,可以使用 sql 语句 "select tablespace_name from dba_tablespaces",其中 dba_tabl...
    99+
    2024-05-14
    oracle
  • oracle怎么创建新用户并赋予权限设置
    答案:要创建 oracle 新用户,请执行以下步骤:以具有 create user 权限的用户身份登录;在 sql*plus 窗口中输入 create user identified ...
    99+
    2024-05-14
    oracle
  • oracle怎么建立新用户
    在 oracle 数据库中创建用户的方法:使用 sql*plus 连接数据库;使用 create user 语法创建新用户;根据用户需要授予权限;注销并重新登录以使更改生效。 如何在 ...
    99+
    2024-05-14
    oracle
  • oracle怎么创建新用户并赋予权限密码
    本教程详细介绍了如何使用 oracle 创建一个新用户并授予其权限:创建新用户并设置密码。授予对特定表的读写权限。授予创建序列的权限。根据需要授予其他权限。 如何使用 Oracle 创...
    99+
    2024-05-14
    oracle
  • oracle怎么查询时间段内的数据记录表
    在 oracle 数据库中查询指定时间段内的数据记录表,可以使用 between 操作符,用于比较日期或时间的范围。语法:select * from table_name wh...
    99+
    2024-05-14
    oracle
  • oracle怎么查看表的分区
    问题:如何查看 oracle 表的分区?步骤:查询数据字典视图 all_tab_partitions,指定表名。结果显示分区名称、上边界值和下边界值。 如何查看 Oracle 表的分区...
    99+
    2024-05-14
    oracle
  • oracle怎么导入dump文件
    要导入 dump 文件,请先停止 oracle 服务,然后使用 impdp 命令。步骤包括:停止 oracle 数据库服务。导航到 oracle 数据泵工具目录。使用 impdp 命令导...
    99+
    2024-05-14
    oracle
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作