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

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

  • 相关阅读:
    PHP 开发 APP 接口 学习笔记与总结
    Java实现 LeetCode 43 字符串相乘
    Java实现 LeetCode 43 字符串相乘
    Java实现 LeetCode 43 字符串相乘
    Java实现 LeetCode 42 接雨水
    Java实现 LeetCode 42 接雨水
    Java实现 LeetCode 42 接雨水
    Java实现 LeetCode 41 缺失的第一个正数
    Java实现 LeetCode 41 缺失的第一个正数
    Java实现 LeetCode 41 缺失的第一个正数
  • 原文地址:https://www.cnblogs.com/pied/p/3213847.html
Copyright © 2011-2022 走看看