zoukankan      html  css  js  c++  java
  • mysql操作记录

    零零散散用过好多次mysql,但是一直没有记录过怎么使用,每次都去找教程,有些麻烦,所以在这记录下常用的到的一些东西,以后找也方便。

    第一课:不小心把database mysql给删了

    本来是要删除我自己建的另一个数据库,但是鬼使神差的执行了下面一句

    drop database mysql;

    然后,在要从外部操作数据库的时候,就出现了下面问题:

    ERROR 1146 (42S02): Table 'mysql.user' doesn't exist

    妈蛋,mysql都被哥删了,哪里来的mysql.user啊。。。所以,从此走上了救赎之路。

    救赎第一步,把mysql kill掉(用/etc/init.d/mysql stop不成功,就killall了),然后用mysql_install_db来重新装系统的table。

    sudo killall mysqld
    sudo mysql_install_db --user=mysql

    哈,这时候再登入,就会出现下面这个问题,

    Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' 

    造成这个问题的原因多种多样,搜一大堆解决方法,这里需要这样:

    1、新建一个文本文档,比如/tmp/mysql-init.txt,把下面这一句拷贝进去(123456换做你密码)

    SET PASSWORD FOR 'root'@'localhost' = PASSWORD(‘123456’);

    2、用init文档来启动mysql

    mysqld --init-file=/tmp/mysql-init.txt 

    这里主要目的是为了修改密码,所以,看到密码修改已经成功的话,就可以ctrl-z了。

    然后就好了,再用mysql -u root -p打开数据库,everything is ok!

    权限操作

    设定root密码:

    mysqladmin -u root password 'new_password'

    注意,除了上面这句是在cmdline下执行的,其它都是在mysql内对database mysql执行操作,所以,记得use mysql。

    修改其它用户密码,注意,没有where的话,就是修改所有用户密码:

    mysql> use mysql;
    mysql> UPDATE user SET password=password('new_password') where user='root'; 
    mysql> FLUSH PRIVILEGES;

    删除空账户:

    mysql> DELETE FROM user WHERE User = 'usr_name';
    mysql> FLUSH PRIVILEGES; 

    建立新账号:

    mysql> GRANT priv_type ON db_name.tb_name TO user IDENTIFIED BY ‘password’
    eg:
    mysql> CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'mypass';
    mysql> GRANT ALL ON db1.* TO 'jeffrey'@'localhost';
    mysql> GRANT SELECT ON db2.invoice TO 'jeffrey'@'localhost';
    mysql> GRANT USAGE ON *.* TO 'jeffrey'@'localhost' WITH MAX_QUERIES_PER_HOUR 90;
    mysql> FLUSH PRIVILEGES;

    如果NO_AUTO_CREATE_USER没有被使用,而且密码不为空,GRANT会自动新建用户,即可以不用 ‘CREATE USER’ 一句。

    Create user的另一个前提是你拥有该权限;而也必须是你拥有的权限,才能GRANT给别人。

    数据库/数据表的操作

    建立数据库:

    CREATE DATABASE db_name

    使用数据库:

    USE db_nam

    删除数据库,也可以用来删除数据表:

    DROP DATABASE [IF EXISTS] db_name

    建立数据表:

    CREATE TABLE [IF NOT EXISTS] tbl_name (create_definition,...) [table_options] [select_statement]

     例子:

    craete database basic;
    use basic;
    create table basic(
      no char(4)
      name char(10)
      id char(10));
    
    drop table basic

    查看数据库或表

    #show the list of database
    show databases;
    
    #use database before get db_name.tb
    use db_name;
    #show tb list
    in thins databases show tables;
    #show the columns of the table describe tb_name;
    #the abobe one equel to show columns from tb_name

    #show the contents of tb
    select * from tb_name

    暂时就用到这么多,整理完休息一下~

  • 相关阅读:
    Connection parameters are correct , SSL not enabled
    log4j配置文件的详解
    java.lang.IllegalArgumentException: addChild: Child name '/SSHE' is not unique
    MYSQL的三种注释
    Oracle19c 单节点ASM 存储模式数据库实例搭建过程
    [专题]中立遭质疑,提价遭反对,ARM的生存难题怎么破?
    快速排序的理解
    chrome审查元素功能,web开发强大帮手
    MyEclipse Server view报错解决方法
    把Java程序打包成jar文件包并执行
  • 原文地址:https://www.cnblogs.com/pied/p/3213847.html
Copyright © 2011-2022 走看看