mysql安装时的一些问题总结,自勉~~

9 篇文章 0 订阅
3 篇文章 0 订阅

1.下载地址:
    https://dev.mysql.com/downloads/file/?id=485812

2.安装:
    端口号 : 3308
    密码 : 111111

pip install PyMySQL

进入到 C:\Program Files\MySQL\MySQL Server 8.0\bin 执行数据库操作
或者设置 C:\Program Files\MySQL\MySQL Server 8.0\bin 为环境变量

管理员执行命令提示符:
    停止:net stop MySQL80(这台电脑-管理-服务和应用程序-服务-MySQL相关名称的服务)
    启动:net start MySQL80

链接到数据库:
    指令1:mysql -h localhost -P 3308 -u root -p111111
    指令2:mysql -h localhost -P 3308 -u root -p
    说明:
        -h表示连接的主机IP,
        -P表示连接的端口号,这是大写的P
        -u表示连接数据库的用户名
        -p表示连接数据库的密码,这里是小写的p,如果和密码一起输入时,p和密码之间不能加空格
    错误1:
        当把 指令1 中的localhost改成本机的ip地址时,如192.168.0.102,提示:
        --->mysql: [Warning] Using a password on the command line interface can be insecure.
        --->ERROR 1130 (HY000): Host 'KE' is not allowed to connect to this MySQL server
    原因1:mysql服务器出于安全考虑,默认只允许本地登录数据库服务器。
    方法1:
        https://blog.csdn.net/hjulkk/article/details/52563044
        1.进入mysql : mysql -h localhost -P 3308 -u root -p111111
        然后输入如下命令:
            use mysql;
            update user set host = '%' where user = 'root';
            flush privileges;
            select host,user from user;
            quit
        2.重启:mysql-net stop MySQL80、net start MySQL80
        3.终端输入 :mysql -h 192.168.0.102 -P 3308 -u root -p111111
            可以了。
============>============>
mysql> use mysql
Database changed
mysql> update user set host = '%' where user = 'root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

mysql> select host,user from user;
+-----------+------------------+
| host      | user             |
+-----------+------------------+
| %         | root             |
| localhost | mysql.infoschema |
| localhost | mysql.session    |
| localhost | mysql.sys        |
+-----------+------------------+
4 rows in set (0.00 sec)

mysql> quit
Bye

============>============>

创建数据库和表:
1.创建数据库:-->CREATE DATABASE 要大写
-----》CREATE DATABASE 数据库名; 

2.创建表:-->CREATE TABLE 要大写
----->CREATE TABLE 表名 (
    属性名 数据类型 [完整约束条件],
    属性名 数据类型 [完整约束条件],
    ...
    ...
    属性名 数据类型 [完整约束条件]
);
如:
CREATE TABLE student (
    id int,
    name varchar(20)
    );
    


出了一堆问题后,
根据 https://blog.csdn.net/ziyifengfei/article/details/80668730 说明重置信息
临时密码:P8w8h%n9=V:0
进入数据库使用:mysql -h localhost -P 3306 -u root -pP8w8h%n9=V:0(P8w8h%n9=V:0为重置后生成的临时密码)
重置密码:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '111111';

错误2:
    这时候从终端可以操作mysql,但是通过python代码会报错,如下:
    pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on 'localhost' ([WinError 10061] 由于目标计算机积极拒绝,无法连接。)")
原因2:
    最初安装mysql的时候端口号是3308,后面重置信息,端口号还原成默认的3306,
方法2:
    把port的传参改成3306即可。


这时候出现新的错误
错误3:
    pymysql.err.OperationalError: (1045, "Access denied for user 'user'@'localhost' (using password: YES)")
原因3:
    发现用户名用的是[user]而不是最初的[root],所以一直报错,
方法3:
    直接把user="user"改成user="root"


如果把host="localhost"改成host="192.168.0.102",这时候报错
错误4:
    pymysql.err.InternalError: (1130, "Host 'KE' is not allowed to connect to this MySQL server")
原因4:
    没有给host主机授权
方法4:
    https://www.cnblogs.com/wuxunyan/p/9095016.html,这时候也可以添加和授权新的用户

在解决错误4的时候的授权命令是错误的:
    grant privileges on databasename.tablename to 'username'@'host' IDENTIFIED BY 'PASSWORD';
改成,grant 和 privileges之间加个all,或者使用select 选具体权限,如下:
    /*授予用户通过外网IP对于该数据库的全部权限*/
    grant all privileges on `test`.* to 'test'@'%' ;

    /*授予用户在本地服务器对该数据库的全部权限*/
    grant all privileges on databasename.tablename to 'username'@'host' IDENTIFIED BY 'PASSWORD';

    grant select on test.* to 'user1'@'localhost';  /*给予查询权限*/
    grant insert on test.* to 'user1'@'localhost'; /*添加插入权限*/
    grant delete on test.* to 'user1'@'localhost'; /*添加删除权限*/
    grant update on test.* to 'user1'@'localhost'; /*添加权限*/


想设置root为任意ip地址可用,
之间使用
    grant all privileges on *.* to 'root'@'%';
    或者 grant all privileges on *.* to 'root'@'%' WITH GRANT OPTION;
都报错,错误如下
错误5:
    ERROR 1410 (42000): You are not allowed to create a user with GRANT
原因5:
    当前user表中没有root - %记录; 可以更新root - localhost 为 root - %
方法5:
    http://www.pianshen.com/article/4049291622/
    命令1:update user set host = '%' where user = 'root';
    出现问题:ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'
    原因显示:host+user 应该是联合主键,冲突了
    命令2:update user set host = '%' where user = 'root' and host='localhost';
    
    设置允许远程用户访问:grant all privileges on *.* to 'root'@'%';


 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值