zoukankan      html  css  js  c++  java
  • 【数据库开发】在Windows上和Linux上配置MySQL的过程

    【数据库开发】在Windows上和Linux上配置MySQL的过程

    标签(空格分隔): 【编程开发】


    首先是在Windows上尝试用QT进行MySQL数据库开发,结果总出现driver不能load的错误,一直没有改过来。后又直接尝试在Linux下进行MySQL开发,直接安装了三个包就可以使用了。下面记录这些过程。


    在Linux下配置MySQL的过程

    首先是安装mysql,以ubuntu为例:

    sudo apt-get install mysql-server mysql-client
    //安装过程中会让你输入root密码,比如:123456
    

    安装完成后,使用,我们就可以在命令行运行mysql了:

     mysql -u root -p
    //Enter password:123456
    

    进入mysql了,可以输入各种命令了:

    mysql> create database testdb;//创建一个数据库
    mysql> use testdb;//切换到该数据库
    
    mysql> create table student (sid int primary key not null, name varchar(20));//创建一个表
    mysql> insert into student values (2010110, 'shuguang');//插入一条记录
    mysql> select * from student;//查询
    
    mysql> delete form student where name = 'shuguang';//删除一条记录
    mysql> update student set name = 'chengshuguang' where name = 'shuguang';//更新一条记录
    mysql> drop table student;//删除表
    mysql> drop database testdb;//删除数据库
    //显示
    mysql> show databases;//显示所有数据库列表
    mysql> show tables;//显示一个数据库中的所有表
    mysql> desc/describe student;//查看student表的结构
    mysql> show table status;//显示table的各种配置信息,比如Engine是MyISAM(默认)还是InnoDB(支持transaction)
    //由于鄙人开发过程中要用到transaction来保证数据的一致性,所以需要把Engine切换到InnoDB,其实很简单,如下:
    mysql> alter table student ENGINE = InnoDB;
    

    关于引擎的切换要单独拿出来,主要是便于我以后查看:

    mysql> alter table student ENGINE = InnoDB;
        切换到InnoDB之后,就可以用事务(transaction)了
    
    begin transaction;
    ...
    do anything...
    ...
    commit;//没有出错则提交
    rollback;//出错,那么就rollback,这个功能就是我需要
    

    然后就是应用mysql开发啦:
    你还需要安装一个开发包:libmysql++-dev

    sudo apt-get install libmysql++-dev
    

    到这一步,一切准备就绪,只差写代码啦:

    #include<stdio.h>
    #include<mysql/mysql.h>
    int main()
    {
        MYSQL mysql;
        mysql_init(&mysql);
        if(!mysql_real_connect(&mysql,"localhost","root","110315","testdb",0,NULL,0)){
            fprintf(stderr,"Failedtoconnecttodatabase:Error:%s\n",mysql_error(&mysql));
        }
        else{
            printf("database connect..
    ");
        }
        mysql_close(&mysql);
        return 0;
    }
    

    编译的时候要注意加上-lmysqlclient

    g++ testmysql.cpp -g -Wall -lmysqlclient -o testmysql
    

    在Windows下配置MySQL的过程

    首先在下面的连接中找到了一个community版本的SQL,GPL。

    是一个压缩包,解压过后放在了D盘路径,进入到对应的:

    D:mysql_5_7_17_winx64in
    

    里面实际上就对应Linux下的各种命令的可执行文件;

    在第一次配置的过程中遇到了各种问题,总之就是连接不上,都进不去mysql。

    下面是正确的部署过程:

    mysqld --initialize-insecure
    

    只输mysqld –initialize 生成随机密码进不去的,输入mysqld –initialize-insecure生成无密码的用户

    上面的作用是初始化mysql环境,生成了对应的data路径:

    D:mysql_5_7_17_winx64data
    

    之后安装mysqld服务:

    mysqld –install #安装服务
    

    然后可以开启服务:

    net start mysql
    

    这样才会开启服务,然后使用mysql进行登陆

    mysql -u root
    

    不需要输入密码,因为上面初始化的时候设置了root没有密码,进入后可以修改密码:

    方法1: 用SET PASSWORD命令
    
      MySQL -u root
    
      mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');
    
    方法2:用mysqladmin
    
      mysqladmin -u root password "newpass"
    
      如果root已经设置过密码,采用如下方法
    
      mysqladmin -u root password oldpass "newpass"
    
    方法3: 用UPDATE直接编辑user表
    
      mysql -u root
    
      mysql> use mysql;
    
      mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';
    
      mysql> FLUSH PRIVILEGES;
    
    在丢失root密码的时候,可以这样
    
      mysqld_safe --skip-grant-tables&
    
      mysql -u root mysql
    
      mysql> UPDATE user SET password=PASSWORD("new password") WHERE user='root';
    
      mysql> FLUSH PRIVILEGES;
    

    2016-12-20 20:34
    张朋艺 pyZhangBIT2010@126.com

  • 相关阅读:
    更好的抽屉效果(ios)
    系统拍照动画
    UITabBarController详解
    touch事件分发
    iOS UWebView详解
    iOS 监听声音按键
    webservice偶尔报黄页,解决方案
    FastReport脚本把数据绑定到文本控件上
    [转]js版的md5()
    JQuery中$.ajax()方法参数详解
  • 原文地址:https://www.cnblogs.com/huty/p/8517475.html
Copyright © 2011-2022 走看看