mysql学习笔记

来源:互联网 发布:linux nat共享上网 编辑:程序博客网 时间:2024/06/05 19:05

一:安装后的配置
    文件目录:
        数据库目录
            /var/lib/mysql/
        配置文件
            /usr/share/mysql(mysql.server命令及配置文件)
        相关命令
            /usr/bin(mysqladmin mysqldump等命令)
        启动脚本  
             /etc/rc.d/init.d/mysqld(启动脚本文件mysql的目录)

    启动:
            su  - mysql
            /etc/rc.d/init.d/mysqld  start  
            注:我的是mysqld,也可能是mysql
    
    获取信息:
            $ mysql  -u  root mysql
            注:如果你得到一些信息,然后是mysql>提示符,说明已经进入了。输入/s可以得到更多信息
            
            
            $ mysqladmin -u root version
            注:查看版本号
    修改密码:
            $ mysqladmin -u root password newpassword
            注:newpassword便是新密码,刚开始的时候默认是无密码的。但是这种修改密码的方法不安全
            因为终端会有记录,留在shell历史中。更好的方法就是通过mysql控制台,使用sql语句。
            
            $ mysql -u -root
            mysql> SET password=PASSWORD('newpassword');
            注:newpassword的位置输入你的密码。下面查看密码。
            
            mysql>SELECT user, host, password FROM mysql.user
            +------+-----------+-------------------------------------------------------+
            | user    | host             | password                                                                                          |
            +------+-----------+-------------------------------------------------------+
            | root    | localhost   | *41B6A162BA4FE528AE031B240564968C3EDB4A70 |
            | doa     | %                   | *41B6A162BA4FE528AE031B240564968C3EDB4A70 |
            +------+-----------+-------------------------------------------------------+
            2 rows in set (0.00 sec)
            注:这显示的是我电脑里面的密码。下面讲解如何删除密码。
            
            mysql> DELETE FROM mysql.user WHERE user !='root';
            注:将删除非root用户
            mysql> DELETE FROM mysql.user WHERE host !='localhost';
            注:将删除非本机用户。
            mysql> eixt;
            注:退出。或者quit; 或者/q
            
    创建用户:
            当然你可以用root账户登录,但这不是一个好选择。需要创建一个普通用户来为日常使用。
            在此将创建一个拥有广泛权限的用户 doa。doa有三种方式进行链接。
                1.从本地机器连接
                2.从IP地址在192.168.0.0  —>192.168.0.255范围内的任何机器进行链接
                3.从wiley.com域中的任何机器链接。
                
            mysql>GRANT   ALL  ON *.* TO doa@localhost IDENTIFIED BY "password";
            mysql>GRANT   ALL  ON *.* TO doa@'192.168.0.0/192.168.0.255' IDENTIFIED BY "password";
            mysql>GRANT   ALL  ON *.* TO doa@'wiley.com' IDENTIFIED BY "password";
            
            注: grant 是创建命令。ALL代表所有权限。ON *.* 使用了通配符,说明权限作用在所有的文件
            上。IDENTIFIED BY "password" 设置密码为pssword。
            
二:MySQL管理
    1.myisamchk
        作用:
            为了检查/修复MyISAM表(.MYI和.MYD)
        何时使用:
            如果你使用myisamchk修复或优化表,你必须总是保证mysqld服务器不在使用表(如果
            你正在使用--skip-locking,这也适用)。如果你不停掉mysqld,在你运行myisamchk前,你至少
            应该做一个mysqladmin flush-tables。
            在服务器启动时检查表是一个好主意。
        语法:
                shell> myisamchk [options] tbl_name
        事例:
                myisamchk   /path/to/datadir/*/*.MYI
        
                myisamchk -d tbl_name
                    以“描述模式”运行myisamchk,生成你的表的描述。如果你用--skip-locking选项启动MySQL
                    服务器,myisamchk可以当它运行时报告被一个更新的表的错误。然而,既然在描述模式中
                    myisamchk不改变表,没有破坏数据的任何风险。
                    
                myisamchk -d -v tbl_name                
                    为了生成更多关于myisamchk正在做什么的信息,加上-v告诉它以冗长模式运行。
                    
                myisamchk -eis tbl_name
                    仅显示一个表最重要的信息。因为必须读取整个表,它很慢。
                    
                myisamchk -eiv tbl_name
                    这类似-eis,只是告诉你正在做什么。

    2.mysql命令

        作用:
            这是MySQL主要的并且唯一的完全世命令行工具。
        事例:    
            $mysql -u -doa -p table_name        
            注:-p让程序提示你输入密码    
            $mysql -u -doa -p table_name    < sqlcommands.sql
            注:从一个文件中读取命令
    
    3.mysqladmin

        作用:
            进行快速管理的工具
        语法:
            shell> mysqladmin [OPTIONS] command [command-option] command ...
            详细参数见mysqladmin --help
    4.mysqlbug

        作用:
            生成一个用于发送给MySQL维护者的错误报告。
    5.mysqldump
        作用:
            允许你以sql命令集的形式将部分或整个数据库导出到一个单独文件中。可用来备份。
        事例:
            mysqldump -u root -p mysql >mysql.dump
    6.mysqlimport
        作用:
            从输入文件中读取大量数据。一般读取由mysqldump创建的文件,当然足够耐心或者形式所迫的
            话也可以自己创建。
    7.mysqlshow
        作用:
            提供关于你的MySQL安装及其组成数据库的的快速信息
        事例:
            mysqlshow -u root -p
            注:列出所有可用的数据库。
    8.grant命令
        作用:
            创建用户并赋予权限
        格式:
            grant <privilege> on <object> to <user> [identified by user-password] [ with grant] ;
        解释:
            <privilege>的权限有
                alter             改变表格和索引
                create            创建数据库和表格
                delete            从数据库中删除数据
                drop            删除数据库和表格
                index            管理索引
                insert            在数据库中插入数据
                select            提取数据
                update        修改数据
                all                以上所有
            <object>格式为databasename.tablename,在此可以使用unix通配符*,如*.*
            <user>事例为doa@localhost,在此可以使用sql的通配符%,如doa@'%'
            identified by 是可选的,每次都设定密码是个好主意。
    9.revoke
        作用:
            剥夺管理员权限,但是不能删除用户。
        语法:
            revoke <privilege> on <object> to <user> ;
            注:这只是剥夺权限,不是删除用户。删除可以用下列命令:
                mysql>use mysql
                mysql>DELETE FROM user WHERE user ="doa"
                mysql>FLUSH PRIVILEGES;
                注:delete和grant,revoke不属于同一范畴。delete是sql语法,grant,revoke是mysql命令
                mysql里面可以允许使用sql语法。对于grant,revoke,use命令是没有必要的,因为mysql知
                道你想操作权限表。
    10.修改密码update
            语法:
                UPDATE user SET password = password('newpassword') WHERE user = 'doa';
    11.创建数据库create
            语法:
                mysql> CREATE DATABASE newDatabase;
                mysql> use newDatabase
    
    12.创建表格create

            语法;
                CREATE TABLE table_name (
                    column_name type [ NULL | NOT NULL] [auto_increment] [PRIMARY KEY],
                    [...]
                    [PRIMARY KEY (column_name [, ...]) ]
                );
            事例:
                CREATE TABLE children (
                    childno int(11)  NOT NULL auto_increment,
                    fname varchar(13),
                    age int(11),
                    PRIMARY KEY (childno)
                );

                INSERT INTO children VALUES  (5,  'Jenny',  17) ;
                INSERT INTO children VALUES  (2,  'DOA1',  12) ;
                INSERT INTO children VALUES  (3,  'DOA2',  17) ;
                INSERT INTO children VALUES  (4,  'DOA3',  17) ;
            解释:
                auto_increment            自动加一
                NULL                        未知的,无关的
                PRIMARY KEY                主键
    
三:图形化工具

    continue。。。。    
    
    
    
    

原创粉丝点击