zoukankan      html  css  js  c++  java
  • MySql学习笔记

     Install MySql on Windows:

    https://dev.mysql.com/doc/refman/5.7/en/windows-install-archive.html 

    https://dev.mysql.com/doc/refman/5.7/en/windows-create-option-file.html

    connector-net-programming-connecting-connection-string Note: charset=ut8; is very important!

    Example: server=ali.centos.test.com;database=tuotuo;uid=uid;pwd=pwd;charset=utf8;

    http://stackoverflow.com/questions/21618015/how-to-connect-to-mysql-database

    https://dev.mysql.com/downloads/connector/net/ Download DotNet mysql connector. Or using NuGet: > Install-Package MySql.Data

    using MySql.Data; using  MySql.Data.SqlClient;   var conn = new MySqlConnection(connectionString);

    Install MySQL on CentOS-7

    https://www.linode.com/docs/databases/mysql/how-to-install-mysql-on-centos-7 

    https://www.linode.com/docs/databases/mariadb/how-to-install-mariadb-on-centos-7 Now, it called MariaDB. It works.

    https://www.howtoforge.com/apache_php_mysql_on_centos_7_lamp 

    Set passwords for the MySQL root account: {{mysql_secure_installation}}

    #To check your hostname run:	
    > hostname
    > hostname -f
    #Update your system:
    sudo yum update
    #Install and Start MariaDB
    sudo yum install mariadb-server
    #Enable MariaDB to start on boot and then start the service:
    sudo systemctl enable mariadb
    sudo systemctl start mariadb
    

      

    在远程机器全新安装MYSQL, 在连接时有时会遇到一些问题: 

    1、报错:1130-host ... is not allowed to connect to this MySql server

    http://www.cnblogs.com/xyzdw/archive/2011/08/11/2135227.html

    2、之后有遇到:SSL not enabled 的错误:

    http://stackoverflow.com/questions/27202499/mysql-workbench-connection-ssl-not-enable

    http://blog.itpub.net/15480802/viewspace-751574

    防止在MYSQL中插入重复记录: http://www.cnblogs.com/zeroone/archive/2012/04/18/2454728.html

    https://linuxize.com/post/how-to-change-mysql-user-password/   修改密码Change Password

    ALTER USER 'user-name'@'localhost' IDENTIFIED BY 'NEW_USER_PASSWORD';
    FLUSH PRIVILEGES;

    VERION:

    select @@version;

    select @@hostname;

    MySQL 命令行

    第一招、mysql服务的启动和停止
    net stop mysql
    net start mysql

    第二招、登陆mysql
    语法如下: mysql -u 用户名 -p 用户密码
    键入命令mysql -u root -p,回车后提示你输入密码,输入12345,然后回车即可进入到mysql中了,mysql的提示符是:
    mysql>
    注意,如果是连接到另外的机器上,则需要加入一个参数-h机器IP

    第三招、增加新用户
    格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"
    如,增加一个用户user1密码为password1,让其可以在本机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令:
    grant select,insert,update,delete on *.* to user1@localhost Identified by "password1";

    http://dev.mysql.com/doc/refman/5.5/en/create-user.html

    create user 'username'@'%' identified by 'Password';

    grant ALL PRIVILEGES on dbname.* to 'username'@'%' [identitified by 'Password'];
    如果希望该用户能够在任何机器上登陆mysql,则将localhost改为"%"
    如果你不想user1有密码,可以再打一个命令将密码去掉。
    grant select,insert,update,delete on mydb.* to user1@localhost identified by "";

    再刷新一下privileges>> flush privileges

    也可以直接这样子创建一个用户: insert into mysql.user(Host,User,Password) values("localhost","test",password("1234"));

    查看所有用户:select host,user from mysql.user;

    删除账户及权限:>drop user 用户名@'%';

            >drop user 用户名@ localhost; 

    第四招: 操作数据库
    登录到mysql中,然后在mysql的提示符下运行下列命令,每个命令以分号结束。
    1、 显示数据库列表。
    show databases;
    缺省有两个数据库:mysql和test。 mysql库存放着mysql的系统和用户权限信息,我们改密码和新增用户,实际上就是对这个库进行操作。
    2、 显示库中的数据表:
    use mysql;
    show tables;
    3、 显示数据表的结构:
    describe 表名;
    4、 建库与删库:
    create database 库名;
    drop database 库名;
    5、 建表:
    use 库名;
    create table 表名(字段列表);
    drop table 表名;
    6、 清空表中记录:
    delete from 表名;
    7、 显示表中的记录:
    select * from 表名;

    第五招、导出和导入数据
    1. 导出数据:
    mysqldump --opt test > mysql.test
    即将数据库test数据库导出到mysql.test文件,后者是一个文本文件
    如:mysqldump -u root -p123456 --databases dbname > mysql.dbname
    就是把数据库dbname导出到文件mysql.dbname中。
    2. 导入数据:
    mysqlimport -u root -p123456 < mysql.dbname。
    不用解释了吧。
    3. 将文本数据导入数据库:
    文本数据的字段数据之间用tab键隔开。
    use test;
    load data local infile "文件名" into table 表名;
    1:使用SHOW语句找出在服务器上当前存在什么数据库:
    mysql> SHOW DATABASES;
    2:2、创建一个数据库MYSQLDATA
    mysql> CREATE DATABASE MYSQLDATA;
    3:选择你所创建的数据库
    mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!)
    4:查看现在的数据库中存在什么表
    mysql> SHOW TABLES;
    5:创建一个数据库表
    mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));
    6:显示表的结构:
    mysql> DESCRIBE MYTABLE;
    7:往表中加入记录
    mysql> insert into MYTABLE values ("hyq","M");
    8:用文本方式将数据装入数据库表中(例如D:/mysql.txt)
    mysql> LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE MYTABLE;
    9:导入.sql文件命令(例如D:/mysql.sql)
    mysql>use database;
    mysql>source d:/mysql.sql;
    10:删除表
    mysql>drop TABLE MYTABLE;
    11:清空表
    mysql>delete from MYTABLE;
    12:更新表中数据
    mysql>update MYTABLE set sex="f" where name='hyq';
    13:备份数据库mysqldump -u root 库名>xxx.data14:

    例2:连接到远程主机上的MYSQL
      假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:   

      mysql -h110.110.110.110 -uroot -pabcd123   

      (注:u与root可以不用加空格,其它也一样)  

      3、退出MYSQL命令: exit

    转自:http://www.iteye.com/topic/469868

    例如:如果xhkdb数据库存在,尝试存取它:

    命令:create table ( [,.. ]);

    mysql> CREATE TABLE `testa` (
    -> `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
    -> `name` varchar(20) DEFAULT NULL ,
    -> PRIMARY KEY (`id`)
    -> ) ENGINE=MyISAM AUTO_INCREMENT=65 DEFAULT CHARSET=utf8;

    2、获取表结构
    命令: desc 表名,或者show columns from 表名
    mysql> DESCRIBE MyClass
    mysql> desc MyClass;
    mysql> show columns from MyClass;

    1)、查询所有行
    mysql> select * from MyClass order by id limit 0,2;

    7、修改表中数据:update 表名 set 字段=新值,… where 条件

    mysql> update MyClass set name=”Mary” where id=1;

    8、在表中增加字段:
    命令:alter table 表名 add字段 类型其他;

    例如:在表MyClass中添加了一个字段passtest,类型为int(4),默认值为0
    mysql> alter table MyClass add passtest int(4) default ”0”

    Rename Column:
    alter table ad change ImageUrl ThumbImg varchar(500);
    9、更改表名:
    命令:rename table 原表名 to 新表名;
    例如:在表MyClass名字更改为YouClass
    mysql> rename table MyClass to YouClass;


    CREATE TABLE mytable (
    mydate TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    ....)

    -- https://dev.mysql.com/doc/refman/5.6/en/create-table-foreign-keys.html
    DROP TABLE IF EXISTS `api_requests`;
    CREATE TABLE `api_requests` (
        api_request_key bigint NOT NULL auto_increment key,
        initiator varchar(50),
        request_type varchar(50),
        initiator_ip varchar(20),
        request_id varchar(50),
        request_url varchar(500),
        request_headers varchar(4000),
        request_body nvarchar(8000),
        create_date datetime
    );
    
    CREATE INDEX ix_api_requests_request_id on api_requests (request_id DESC);
    CREATE INDEX ix_api_requests_request_url on api_requests (request_url ASC);
    CREATE INDEX ix_api_requests_create_date on api_requests (create_date DESC);
    
    
    DROP TABLE IF EXISTS `api_responses`;
    CREATE TABLE `api_responses` (
        api_response_key int auto_increment key,
        api_request_key bigint NOT NULL,
        status_code varchar(20),
        response_headers varchar(4000),
        response_body nvarchar(8000),
        create_date datetime
    );
    
    CREATE INDEX ix_api_responses_request_key on api_responses (api_request_key DESC);
    
    ALTER TABLE `api_responses` ADD CONSTRAINT `fk_api_responses_request_key` 
    	FOREIGN KEY (`api_request_key`) REFERENCES `api_requests`(`api_request_key`);
        
    -- ALTER TABLE api_responses DROP  FOREIGN KEY `fk_api_responses_request_key` ;
    

      



    ConnectionString in .NET(needs to download mysql connector for .NET):
    <add name="" connectionString="Server=localhost;port=3306;Database=ddname;Uid=user1;Pwd=111111;" providerName="MySql.Data.MySqlClient"/>

    http://dev.mysql.com/doc/refman/5.5/en/innodb-foreign-key-constraints.html

    TODO:

    MySQL support insert multiple records as following:

    Insert into table_name (f1, f2) values(v1, v11), (v2, v21), (v3, v31);

    Q: if not exists?

    http://dev.mysql.com/doc/refman/5.7/en/exists-and-not-exists-subqueries.html


    日期相关操作:

    STR_TO_DATE('2010-10-15 10:00:00', '%Y-%m-%d %H:%i:%s')

    MYSQL DATE and DateTime:  http://www.cnblogs.com/jinzhenshui/archive/2009/06/18/1505880.html


    test account for wechat development
  • 相关阅读:
    Log4net源码分析(一)
    找不到具有绑定 WSHttpBinding 的终结点的与方案 http 匹配的基址。注册的基址方案是 []。
    C#线程锁使用全功略
    C#泛型版的超级优化的快速排序算法和插入排序、二分查找算法
    用WM_COPYDATA实现进程通信
    构建插件式的应用程序框架(二)-订立契约
    Ajax网站安全,谁来保证
    构建插件式的应用程序框架(三)-动态加载
    构建插件式的应用程序框架(八)-视图服务的简单实现
    插件架构学习体会(一) 宿主程序说:插件你得听我的
  • 原文地址:https://www.cnblogs.com/swlin/p/3823561.html
Copyright © 2011-2022 走看看