zoukankan      html  css  js  c++  java
  • Mysql简单使用

    MySQL数据库安装及基本配置
    CentOS6和RHEL6系统的YUM中包含了MySQL安装包,版本是MySQL5。rpm软件包的名称是mysql-server。
    使用以下命令可以安装MySQL数据库:
    yum install -y mysql-server mysql mysql-devel
    安装完成后我们可以通过以下命令启动MySQL服务:
    (service mysqld start
    第一次启动MySQL服务后,我们需要对MySQL数据库进行初始化操作,设置root用户的密码,使用以下命令设置MySQL的root用户密码:
    mysqladmin -u root password 'password')
    我们可以通过以下命令连接到本机的MySQL服务上:
    mysql -u root -p
    开机自动启动mysql
    chkconfig mysqld on
    配置文件保存在/etc/my.cnf

    SQL语言基础
    ALTER TABLE 语句用于在已有的表中添加、修改或删除列。
    语法:
    新建表:

    CREATE TABLE `people`

    ( `peopleid` smallint(6) NOT NULL AUTO_INCREMENT,  

    `firstname` char(50) NOT NULL,

    `lastname` char(50) NOT NULL,

    `age` smallint(6) NOT NULL,

    `townid` smallint(6) NOT NULL,

    PRIMARY KEY (`peopleid`),

    UNIQUE KEY `unique_fname_lname`(`firstname`,`lastname`),

    KEY `fname_lname_age` (`firstname`,`lastname`,`age`)

    ) ;

    重命名表名:
    ALTER TABLE table_name RENAME table_name_new;
    如需在表中添加列,请使用下列语法:
    ALTER TABLE table_name ADD column_name datatype;
    要删除表中的列,请使用下列语法:
    ALTER TABLE table_name DROP COLUMN column_name;
    注释:某些数据库系统不允许这种在数据库表中删除列的方式 (DROP COLUMN column_name)。
    要改变表中列的数据类型,请使用下列语法:
    ALTER TABLE table_name MODIFY column_name datatype;
    重命名一个列:
    ALTER TABLE table_name CHANGE COLUMN column_name column_name_new datatype;
    INSERT INTO 语句用于向表格中插入新的行。

    插入:
    INSERT INTO table_name VALUES (值1, 值2,....)
    我们也可以指定所要插入数据的列:
    INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
    Update 语句用于修改表中的数据:
    UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
    DELETE 语句用于删除表中的行:
    DELETE FROM 表名称 WHERE 列名称 = 值
    删除所有行
    可以在不删除表的情况下删除所有的行。这意味着表的结构、属性和索引都是完整的:
    DELETE FROM table_name 或者 DELETE * FROM table_name

    创建一个用户:
    CREATE USER monitor IDENTIFIED BY 'password';
    删除一个用户:
    DROP USER monitor;
    要点:
    DROP USER不能自动关闭任何打开的用户对话。而且,如果用户有打开的对话,此时取消用户,则命令不会生效,直到用户对话被关闭后才生效。一旦对话被关闭,用户也被取消,此用户再次试图登录时将会失败。这是有意设计的。
    重命名用户:
    RENAME USER monitor TO monitor2;
    重置密码:
    SET PASSWORD = PASSWORD('newpassword');
    SET PASSWORD FOR monitor = PASSWORD('newpassword');

    授予的权限可以分为多个层级:
    全局层级 数据库层级 表层级 列层级 子程序层级
    全局级授权:
    GRANT ALL PRIVILEGES ON *.* to 'monitor'@'localhost' IDENTIFIED BY 'password';
    GRANT ALL PRIVILEGES ON *.* to 'monitor'@'%' IDENTIFIED BY 'password';
    撤销所有授权:
    REVOKE ALL PRIVILEGES , GRANT OPTION FROM monitor;

    MySQL使用最为广泛的备份工具是mysqldump。
    使用mysqldump进行基本的数据库备份恢复。
    备份一个数据库:
    mysqldump -u root -p linuxcast > linuxcast_backup.sql
    从一个备份文件恢复一个数据库:
    mysql -u root -p linuxcast < linuxcast_backup.sql
    从一个MySQL服务器备份数据库到另一个MySQL服务器(注意应该先在远程MySQL上创建好数据库):
    [local-server]# mysqldump -u root -p linuxcast | mysql \
                    -u root -p --host=remote-server -C linuxcast

    查看MySQL支持的编码:
    mysql> SHOW CHARACTER SET;
    查看当前MySQL服务器默认编码:
    mysql> SHOW VARIABLES LIKE 'character_set%';
    mysql> SHOW VARIABLES LIKE 'collation%';
    创建数据库的时候指定编码:
    CREATE DATABASE linuxcast
    DEFAULT CHARACTER SET utf8
    DEFAULT COLLATE utf8_general_ci;
    修改一个已有数据库的编码:
    ALTER DATABASE linuxcast CHARACTER SET utf8 COLLATE utf8_general_ci;
    (设置数据库默认编码:
    修改MySQL配置文件my.cnf:
    [client]
    default-character-set=utf8
    [mysql]
    default-character-set=utf8
    [mysqld]
    default-character-set = utf8   
    collation-server = utf8_unicode_ci
    init-connect='SET NAMES utf8'
    character-set-server = utf8
    修改之后重启MySQL生效。)
     
    解决进不去mysql问题:
    /etc/init.d/mysql stop
    mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
    mysql -u root mysql
    mysql>UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
    mysql>FLUSH PRIVILEGES;
    mysql>quit
    /etc/init.d/mysql restart
    mysql -u root -p
    Enter password: <输入新设的密码newpassword>
    mysql>
    解决修改密码问题:
    SET PASSWORD = PASSWORD('password');

    解决新建用户无法登陆问题:
    因为root权限过高,所以新建一用户monitor。创建语句如下:GRANT ALL PRIVILEGES ON *.* to 'monitor'@'%' IDENTIFIED BY 'password';其中@“%”是可以在任何地址登录。 
    创建后到mysql.user下查看,有该用户。但是使用mysql -u monitor -p password 登录,提示无法登录:ERROR 1045 (28000): Access denied for user 'monitor'@'localhost' (using password: YES) 
    解决方法:
    GRANT ALL PRIVILEGES ON *.* to 'monitor'@'localhost' IDENTIFIED BY 'password';
    退出后用monitor登录,成功。
  • 相关阅读:
    僵尸进程
    理论整理
    SQLServer相关概念
    存储过程
    我的简书地址
    swift pragma mark
    苹果iOS开发中如何直接跳转到App Store页面
    使用cocoadPod updating local specs repositories 卡主
    iOS 代码格式化插件Clang-Format
    iOS错误:AFNetworking Error Domain=NSURLErrorDomain Code=-999
  • 原文地址:https://www.cnblogs.com/Monitor/p/4024763.html
Copyright © 2011-2022 走看看