zoukankan      html  css  js  c++  java
  • MySQL的学习记录(4.10更新)

    0x00 安装及配置

    Windows

    1.首先官网下载(https://dev.mysql.com/downloads/mysql/)

    ps:不想官网下载的可以到文章末尾我分享的链接下载(应该是比较老的版本233)。

    2.解压到你想放到的文件夹里,并新建一个文本my.ini,内容如下。

    [client]
    port=3306
    default-character-set=utf8
    [mysqld]
    #开启查询缓存
    explicit_defaults_for_timestamp=true
    port=3306
    #下面两个目录均为你们自己的安装目录
    basedir=F:大二下MySQLmysql-5.7.18-winx64
    datadir=F:大二下MySQLmysql-5.7.18-winx64data
    max_connections=500
    character-set-server=utf8
    default-storage-engine=INNODB
    

    3.设置环境变量

    我的电脑-->高级系统设置-->高级-->环境变量

    在系统变量里的Path中添加F:大二下MySQLmysql-5.7.18-winx64in即可。

    4.安装服务

    mysqld install //安装
    mysqld remove //删除
    

    5.初始化

    mysqld --initialize //有初始密码
    mysqld --initializeinsecure //无
    

    6.启动服务

    net start mysql //启动
    net stop mysql //停止
    

    7.修改初始密码

    首先打开mysql-->data-->aaaa.err文件,搜索password字符串,可以看到你的初始密码。

    mysql -u root -p           //以root用户打开mysql,用初始密码登陆
    show databases;            //提示修改密码
    set password = 'abcd1234'; //密码尽量复杂,不然会失败
    flush privileges;          //刷新权限
    

    至此windows下的mysql就差不多能用了。


    Linux-Deepin

    安装

    参考博客

    1.输入以下命令即可,记得设置密码

    sudo apt-get install mysql-server
    apt-get install mysql-client
    sudo apt-get install libmysqlclient-dev
    

    2.检查是否成功

    sudo netstat -tap | grep mysql
    

    卸载

    参考 博客

    1.查看mysql版本

    mysql -V
    

    2.卸载

    sudo apt-get autoremove--purge mysql-server-5.7 //5.7.18是mysql的版本
    sudo apt-get autoremove mysql-server
    sudo apt-get remove mysql-common
    

    0x01 基本操作

    参考博客:

    #库相关
    create database test; //创建数据库
    drop database test; //删除数据库
    use test; //使用数据库
    
    #表相关
    create student(
    student_number bigint(20) not null,
    name char(10)
    ); // 创建表
    drop table student; //删除表
    show tables; //查看数据库存在的所有表名称
    desc student; //查看表的组成
    show create table student; //查看表的创建过程,可以直接看到是否有主键,外键
    
    #列相关
    alter table student add column age int(3); //增加列
    alter table student drop column age; //删除列
    select * from table_name; //查看表的所有列的内容
    
    #插入,更新,删除数据
    insert into student(name, student_number, age)values('root',123456,15);
    update student set name = 'me' where student_number = 123456;
    
    #主键相关
    primary key (column_name....); //设置主键,需在定义表的时候设置,即在后面添加这句
    alter table student add primary key(student_number); //添加主键
    alter table student drop primary key; //删除,一个表只有一个主键,故不用指定列名
    
    #外键相关
    constraint(foreign_key_name) foreign key(name) references teacher(name);// 设置外键,和主键一样需在定义表的时候设置
    alter table table_name Add constraint `foreign_key_name` foreign key(a) References main_tablename(b) ForeignKeyOption;// 添加外键
    alter table student drop foreign key foreign_key_name 外键名;// 删除外键
    
    

    0x02 自己遇到的一些错误及解决方法

    • ERROR 1045 (28000): Access denied for user 'root'@'localhost'

      我是忘了以管理员权限打开cmd ~233
      
    • ERROR 1091 (42000): Can't DROP 'teacher_ibfk_1'; check that column/key exists

      我一开始是想删除外键,输入  
      alter table teacher drop teacher_ibfk_1;
      后来发现少打了一个foreign key....
      
    • ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '('waijian1') foreign key(student_name) references student(name) on update' at line 1

      输入如下:
      mysql>alter table teacher add constraint('waijian1') foreign key(student_name) references student(name) on update;
      找了贼久的错误没找出来,百度一发发现'waijian1'这玩意不是单引号!!!是反引号[`]
      
    • ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'on delete set null' at line 1

      一开始输入如下:
      mysql> ALTER TABLE teacher ADD CONSTRAINT `waijian` FOREIGN KEY(student_name) REFERENCES student(name) on update set null on delete set null;
      更改之后:
      mysql> ALTER TABLE teacher ADD CONSTRAINT `waijian` FOREIGN KEY(student_name) REFERENCES student(name) on update cascade on delete cascade; 
      //注意,如果你的列定义是设置的not null,那么执行on update set null就会报错
      

  • 相关阅读:
    jQueryrocket
    jQueryrocket
    jQueryrocket
    jQueryrocket
    jQueryrocket
    SharePoint 2013 Workflow Manager 1.0 卸载
    SharePoint 2013 Workflow Manager 1.0 远程服务器返回错误: (400) 错误的请求。 不支持查询字符串中的 api-version
    SharePoint 2010 使用Install-SPSolution部署wsp包状态一直是”正在部署”
    SharePoint 2010管理中心服务器提示“需要升级”
    SharePoint 2010:“&”作为SharePoint账号密码引起的错误
  • 原文地址:https://www.cnblogs.com/L1B0/p/8681828.html
Copyright © 2011-2022 走看看