Chapter25 python高阶——MySQL

xiaoxiao2021-02-28  24

一、数据库简介

二、Windows下安装mysql 8

1.找到下载的mysql-8.0.11-winx64.zip,解压到C:\MySQL\

2.管理员打开命令提示符:

>cd C:\MySQL\mysql-8.0.11-winx64\bin

>mysqld install

>mysqld  --initialize

>net start mysql,发现启动成功

>mysql -u root -p,输入密码直接enter发现登录请求被拒绝

3.到C:\MySQL\mysql-8.0.11-winx64\data下找到”.err”文件,记事本打开。找到”[Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 密码在此”,复制密码

4.回到cmd,再次mysql -u root -p,粘贴刚才复制的密码,登录成功

5.mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxxxxx';(注意此处有;结尾),修改密码成功

6.添加环境变量

7.今后可以>mysql -u root -p,输入新密码启动

附:还有一种在\mysql-8.0.11-winx64下新建my.ini文件和data文件夹,命令行进入bin目录>mysqld --initialize-insecure --user=mysql的免密安装方法(即安装后密码为空,直接回车就好)

三、ubuntu下安装MySQL

1.$sudo apt-get update $sudo apt-get install -y mysql-server mysql-client

查看是否开机启动

查看mysql的端口:

2.vim /etc/mysql/mysql.conf.d/mysqld.cnf

3.vim /etc/mysql/conf.d/mysqld.cnf

启动$ mysql -u root -p,输入密码即可

四、简单操作

#登录命令(会提示输入root密码,初始为空,直接回车)

命令行->mysql -u 用户名 -p   (通常使用的是root用户登录,即->mysql -u root -p)        

命令行->mysql_secure_installation      #修改root密码等

mysql>show databases;              #显示当前数据库

mysql>use mysql;                   #进入mysql库

mysql>show tables;                  #显示当前库中的表格

mysql>select * from user;             #显示user相关内容

mysql>select version();               #显示版本

mysql>select now();                  #显示时间

mysql>exit                          #退出

五、Navicat连接数据库

(一)连接Windows数据库

①mysql 8.0.11中,可以先允许远程登录许可(此步可以视情况跳过):

命令行->mysql_secure_installation

mysql>CREATE USER ‘root’@’%’ IDENTIFIED BY ‘你的密码’

mysql>grant all on *.* to ‘root’@’%’

②Navicat连接,出现了新问题如下:

错误原因是mysql服务器要求的认证插件版本与客户端不一致造成的

可以看到root用户使用的plugin是caching_sha2_password,mysql官方网站有说明:

意思是说caching_sha2_password是8.0默认的认证插件,必须使用支持此插件的客户端版本。

plugin的作用之一就是处理后的密码格式和长度是不一样的,类似于使用MD5加密和使用base64加密一样对于同一个密码处理后的格式是不一样的。

我们可以采取的方式是将plugin降级至mysql_native_password,模仿官方文档中的示例采取图中操作。

③回到Navicat发现连接成功。

 

(二)连接虚拟机数据库

①先登录mysql进行授权,允许远程登录许可:

mysql>grant all privileges on *.* to root@"%" identified by "你的密码" with grant option;

(root为用户名,也可以用其他用户名。"%"代表的是任意host地址,说明远程登录也被许可了)

mysql>flush privileges;

②尝试直接连接

连接时如果发生如下报错:

这个错误是因为虚拟机的3306端口没有打开

可以这样验证:

$sudo -i

# netstat -an | grep 3306

发现有个LISTEN,说明只是监听状态,所以拒绝了访问

③解决方法:

$sudo -i

#vim /etc/mysql/my.cnf

找到其中的“bind-address = 127.0.0.1(或其他)”,注释掉,如果该文件中没有则尝试以下:

vim /etc/mysql/mysql.conf.d/mysqld.cnf

vim /etc/mysql/conf.d/mysqld.cnf

最后,记得要重启mysql:

#service mysql restart

最好重启一下终端,甚至是虚拟机。最终发现连接成功

六、远程连接

转载请注明原文地址: https://www.6miu.com/read-2150379.html

最新回复(0)