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

  • 相关阅读:
    如何在Ubuntu Server 18.04上安装Microsoft的Procmon
    如何在Ubuntu 20.04上安装Wine 5.0
    如何在Kali Linux 2020中启用SSH服务
    如何在Ubuntu 20.04 LTS Focal Fossa上安装Apache Groovy
    如何使用命令在Ubuntu 20.04 Linux上安装Vmware Tools
    在Ubuntu 20.04 LTS Focal Fossa上安装Zabbix Agent
    hdu 2089 不要62
    hdu 2093 成绩排名
    hdu 2104 hide handkerchief
    leetcode147对链表进行插入排序
  • 原文地址:https://www.cnblogs.com/huty/p/8517474.html
Copyright © 2011-2022 走看看