Tools

目录

1. mysql

.1. cmd 配置使用

  • MySQL Community Server 社区版本,开源免费,但不提供官方技术支持。
  • MySQL Enterprise Edition 企业版本,需付费,可以试用30天。
  • MySQL Cluster 集群版,开源免费。可将几个MySQL Server封装成一个Server。
  • MySQL Cluster CGE 高级集群版,需付费。
  • MySQL Workbench(GUITOOL)一款专为MySQL设计的ER/数据库建模工具。它是著名的数据库设计工DBDesigner4的继任者。MySQLWorkbench又分为两个版本,分别是社区版(MySQL Workbench OSS)、商用版(MySQL WorkbenchSE)。

问题描述:在命令行输入 mysql -u root -p 登录mysql,返回”Can’t connect to MySQL server on localhost (10061)”错误;

  • 安装mysqld服务器,输入命令:mysqld –install
  • 启动服务器了,输入命令:net start mysql
  • mysql 仍无法启动,输入命令:mysqld –initialize-insecure
  • 再次输入:net start mysql
  • 又给我出了个问题:Access denied for user ‘root’@’localhost’ (using password: YES), 此时不用密码登录,输入命令: mysql -u root
  • 改密码,进入mysql数据库:use mysql;
  • ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘你的密码’;
  • 刷新一下:flush privileges;
  • 下载链接
  • [默认安装路径](C:\Program Files\MySQL\MySQL Server 8.0\bin),添加到环境变量,使用cmd命令
  • 用户root, 密码:1234qwer
  • 本地登录
shell> mysql -u user -p
#Mysql    -h 电脑名(IP地址 -u 用户名  -p 密码
Enter password:
mysql> QUIT   #断开推出登录
mysql> 准备好进行新查询
-> 等待多行查询的下一行
'> 等待下一行,等待以单引号开头的字符串的完成('
"> 等待下一行,等待以双引号开头的字符串的完成("
``>` 等待下一行,等待以反引号(```)开头的标识符的完成
/*> 等待下一行,等待以#开头的评论完成 /*
mysql> show databases;
mysql> use database;
mysql> show tables;
mysql> DESCRIBE pet;

create database 库名;
drop database 库名;
create table 表名(字段列表);
drop table 表名;
delete from 表名;  #清空表中记录:

source D:\ceshi.sql  #导入数据库

#创建用户创建新用户:create user username@host identified by password; 其中username为自定义的用户名host为登录域名host为%'时表示为 任意IP,为localhost时表示本机,或者填写指定的IP地址;paasword为密码
#为用户授权:grant all privileges on . to ‘username’@’%’ with grant option; 其中*.第一个表示所有数据库,第二个表示所有数据表,如果不想授权全部那就把对应的写成相应数据库或者数据表;username为指定的用户;%为该用户登录的域名
#授权之后刷新权限:flush privileges;

create user ‘ldd’@‘localhost’ identified by ‘1234qwer’;
grant all privileges on *.* to ‘ldd’@‘localhost’ with grant option;
CREATE TABLE shop (
    article INT(4) UNSIGNED ZEROFILL DEFAULT '0000' NOT NULL,
    dealer  CHAR(20)                 DEFAULT ''     NOT NULL,
    price   DOUBLE(16,2)             DEFAULT '0.00' NOT NULL,
    PRIMARY KEY(article, dealer));
INSERT INTO shop VALUES
    (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
    (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
  • 配置文件
[mysqld]
设置3306端口
port=3306
设置mysql的安装目录
basedir=D:\Program Files\MySQL
设置mysql数据库的数据的存放目录
datadir=D:\Program Files\MySQL\Data
允许最大连接数
max_connections=200
允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
服务端使用的字符集默认为UTF8
character-set-server=utf8
创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
设置mysql客户端默认字符集
default-character-set=utf8
[client]
设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
  • basic usage
 
 
/**
 * 官方api 文档:https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-examples.html
 * 连接数据库初始化
 * @author ldd
 *
 */
public class UtilDb {
	private static final String USER = "root";//数据库用户名
	private static final String PASSWORD = "199611@liu";//数据库密码
	private static final String URL = "jdbc:mysql://localhost:3306/MyshoppingSystem?useUnicode=true&characterEncoding=UTF-8&characterSetResults=utf8&serverTimezone=GMT";//数据库url
	//private static final String DRIVER = "com.mysql.jdbc.Driver";
	private static final String DRIVER = "com.mysql.cj.jdbc.Driver";
/*Loading class com.mysql.jdbc.Driver. This is deprecated. The new driver class is com.mysql.cj.jdbc.Driver. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.*/
	private static Connection conn = null; //连接数据库对象
 
	
	//获取connection连接对象
	public static Connection getConnection(){
		//通过单例模式实现
		if(conn==null){
			try {
				Class.forName(DRIVER);//加载驱动
				conn = DriverManager.getConnection(URL, USER, PASSWORD);
				return conn;
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (ClassNotFoundException e) {
				e.printStackTrace();
			}
		}
		return conn;
	}
	//测试连接
	public static void main(String[] args) {
		Connection conn = UtilDb.getConnection();
		if(conn!=null){
			System.out.println("连接数据库成功");
		}else{
			System.out.println("连接失败");
		}
	}	
}
@Override
public Ingredient findOne(String id) {
    Connection connection = null;
    PreparedStatement statement = null;
    ResultSet resultSet = null;
    try {
        connection = dataSource.getConnection();
        statement = connection.prepareStatement(
            "select id, name, type from Ingredient");
        statement.setString(1, id);
        resultSet = statement.executeQuery();
        Ingredient ingredient = null;
        if(resultSet.next()) {
            ingredient = new Ingredient(
                resultSet.getString("id"),
                resultSet.getString("name"),
                Ingredient.Type.valueOf(resultSet.getString("type")));
        }
        return ingredient;
    } catch (SQLException e) {
        // ??? What should be done here ???
    } finally {
        if (resultSet != null) {
            try {
                resultSet.close();
            } catch (SQLException e) {
            }
        }
        if (statement != null) {
            try {
                statement.close();
            } catch (SQLException e) {
            }
        }
        if (connection != null) {
            try {
                connection.close();
            } catch (SQLException e) {
            }
        }
    }
    return null;
}
0%