基于C++和Python的MySQL数据库管理工具设计源码

作品简介

该项目是一款综合性的MySQL数据库管理工具,采用C++和Python进行开发,源代码包含586个文件,涵盖226个头文件(hpp)、190个C++源文件(cpp)、37个Qt Book(qbk)、25个接口文件(ipp)、22个Python脚本(py)、22个Docker容器配置文件(dockerfile)、11个文本文件(txt)、6个YAML配置文件(yml)、5个SVG图形文件(svg)、5个SQL脚本(sql)。该项目旨在为用户提供高效的数据库管理功能,适用于多种开发环境和平台。

关键词

C++ 数据库管理工具 Python MySQL Shell

目录结构

├── .clang-format
├── .clangd
├── .codecov.yml
├── .dockerignore
├── .drone.star
  ├── .github
    ├── workflows
    ├── build-code.yml
    ├── coverage.yml
    ├── docker-linux.yml
    ├── docker-windows.yml
    ├── fuzz.yml
├── .gitignore
├── CMakeLists.txt
├── LICENSE_1_0.txt
  ├── bench
  ├── CMakeLists.txt
  ├── connection_pool.cpp
  ├── run.sh
  ├── cmake
  ├── test_utils.cmake
  ├── doc
  ├── Jamfile
  ├── doxygen.hpp
    ├── images
    ├── connection_pool_bench.svg
    ├── pooled_connection_lifecycle.svg
    ├── protocol.svg
    ├── protocol_multi_resultset.svg
    ├── results.svg
    ├── qbk
    ├── 00_main.qbk
    ├── 01_intro.qbk
    ├── 02_integrating.qbk
    ├── 03_tutorial.qbk
    ├── 04_overview.qbk
    ├── 05_dynamic_interface.qbk
    ├── 06_static_interface.qbk
    ├── 07_queries.qbk
    ├── 08_prepared_statements.qbk
    ├── 09_multi_resultset.qbk
    ├── 10_multi_function.qbk
    ├── 11_metadata.qbk
    ├── 12_async.qbk
    ├── 13_ssl.qbk
    ├── 14_other_streams.qbk
    ├── 15_error_handling.qbk
    ├── 16_connparams.qbk
    ├── 17_reconnecting.qbk
    ├── 18_charsets.qbk
    ├── 19_time_types.qbk
    ├── 20_any_connection.qbk
    ├── 21_connection_pool.qbk
    ├── 22_sql_formatting.qbk
    ├── 23_sql_formatting_advanced.qbk
    ├── 24_examples.qbk
    ├── 24_pipeline.qbk
    ├── 25_tests.qbk
      ├── helpers
      ├── ExecutionRequest.qbk
      ├── ExecutionStateType.qbk
      ├── FieldViewFwdIterator.qbk
      ├── Formattable.qbk
      ├── OutputString.qbk
      ├── ResultsType.qbk
      ├── SocketStream.qbk
      ├── StaticRow.qbk
      ├── Stream.qbk
      ├── WritableFieldTuple.qbk
      ├── quickref.xml
  ├── upgrade_1_82.md
    ├── xsl
    ├── custom-overrides.xsl
  ├── example
  ├── CMakeLists.txt
  ├── Jamfile
  ├── any_connection.cpp
  ├── async_callbacks.cpp
  ├── async_coroutines.cpp
  ├── async_coroutinescpp20.cpp
  ├── async_futures.cpp
  ├── batch_inserts.cpp
  ├── batch_inserts_generic.cpp
    ├── connection_pool
    ├── handle_request.cpp
    ├── handle_request.hpp
    ├── log_error.hpp
    ├── main.cpp
    ├── repository.cpp
    ├── repository.hpp
    ├── server.cpp
    ├── server.hpp
    ├── types.hpp
  ├── db_setup.sql
  ├── dynamic_filters.cpp
  ├── metadata.cpp
    ├── order_management
    ├── db_setup.sql
    ├── parse_cmdline.hpp
    ├── prepared_statements_cpp11.cpp
    ├── prepared_statements_cpp14.cpp
    ├── stored_procedures_cpp11.cpp
    ├── stored_procedures_cpp14.cpp
  ├── patch_updates.cpp
  ├── pipeline.cpp
    ├── private
    ├── employees_multiple.json
    ├── employees_single.json
    ├── run_batch_inserts.py
    ├── run_connection_pool.py
    ├── run_dynamic_filters.py
    ├── run_patch_updates.py
    ├── run_stored_procedures.py
    ├── test_script.sql
  ├── source_script.cpp
  ├── ssl.cpp
  ├── timeouts.cpp
  ├── tutorial.cpp
  ├── unix_socket.cpp
  ├── include
    ├── boost
    ├── mysql.hpp
      ├── mysql
      ├── any_address.hpp
      ├── any_connection.hpp
      ├── bad_field_access.hpp
      ├── blob.hpp
      ├── blob_view.hpp
      ├── buffer_params.hpp
      ├── character_set.hpp
      ├── client_errc.hpp
      ├── column_type.hpp
      ├── common_server_errc.hpp
      ├── connect_params.hpp
      ├── connection.hpp
      ├── connection_pool.hpp
      ├── constant_string_view.hpp
      ├── date.hpp
      ├── datetime.hpp
      ├── days.hpp
      ├── defaults.hpp
        ├── detail
        ├── access.hpp
        ├── algo_params.hpp
        ├── any_execution_request.hpp
        ├── any_resumable_ref.hpp
        ├── character_set.hpp
        ├── coldef_view.hpp
        ├── config.hpp
        ├── connect_params_helpers.hpp
        ├── connection_impl.hpp
        ├── connection_pool_fwd.hpp
        ├── datetime.hpp
        ├── engine.hpp
        ├── engine_impl.hpp
        ├── engine_stream_adaptor.hpp
        ├── escape_string.hpp
        ├── execution_concepts.hpp
          ├── execution_processor
          ├── execution_processor.hpp
          ├── execution_state_impl.hpp
          ├── results_impl.hpp
          ├── static_execution_state_impl.hpp
          ├── static_results_impl.hpp
        ├── field_impl.hpp
        ├── flags.hpp
        ├── format_sql.hpp
        ├── make_string_view.hpp
        ├── next_action.hpp
        ├── ok_view.hpp
        ├── output_string.hpp
        ├── pipeline.hpp
        ├── rebind_executor.hpp
        ├── results_iterator.hpp
        ├── resultset_encoding.hpp
        ├── row_impl.hpp
        ├── rows_iterator.hpp
        ├── socket_stream.hpp
        ├── ssl_fwd.hpp
        ├── string_view_offset.hpp
        ├── throw_on_error_loc.hpp
          ├── typing
          ├── meta_check_context.hpp
          ├── pos_map.hpp
          ├── readable_field_traits.hpp
          ├── row_traits.hpp
        ├── void_t.hpp
        ├── writable_field_traits.hpp
      ├── diagnostics.hpp
      ├── error_categories.hpp
      ├── error_code.hpp
      ├── error_with_diagnostics.hpp
      ├── escape_string.hpp
      ├── execution_state.hpp
      ├── field.hpp
      ├── field_kind.hpp
      ├── field_view.hpp
      ├── format_sql.hpp
      ├── handshake_params.hpp
        ├── impl
        ├── any_connection.ipp
        ├── character_set.ipp
        ├── column_type.ipp
        ├── connection_impl.ipp
        ├── connection_pool.ipp
        ├── date.ipp
        ├── datetime.ipp
        ├── engine_impl_instantiations.ipp
        ├── error_categories.ipp
        ├── escape_string.ipp
        ├── execution_state_impl.ipp
        ├── field.ipp
        ├── field_kind.ipp
        ├── field_view.hpp
        ├── field_view.ipp
        ├── format_sql.hpp
        ├── format_sql.ipp
          ├── internal
            ├── auth
            ├── auth.hpp
            ├── auth.ipp
          ├── byte_to_hex.hpp
          ├── call_next_char.hpp
            ├── connection_pool
            ├── connection_node.hpp
            ├── connection_pool_impl.hpp
            ├── internal_pool_params.hpp
            ├── run_with_timeout.hpp
            ├── sansio_connection_node.hpp
            ├── timer_list.hpp
            ├── wait_group.hpp
          ├── coroutine.hpp
          ├── dt_to_string.hpp
            ├── error
            ├── server_error_to_string.hpp
            ├── server_error_to_string.ipp
            ├── protocol
            ├── capabilities.hpp
            ├── db_flavor.hpp
            ├── deserialization.hpp
            ├── frame_header.hpp
              ├── impl
              ├── binary_protocol.hpp
              ├── bit_deserialization.hpp
              ├── deserialization_context.hpp
              ├── null_bitmap.hpp
              ├── protocol_field_type.hpp
              ├── protocol_types.hpp
              ├── serialization_context.hpp
              ├── span_string.hpp
              ├── text_protocol.hpp
            ├── serialization.hpp
            ├── static_buffer.hpp
            ├── sansio
            ├── close_connection.hpp
            ├── close_statement.hpp
            ├── connect.hpp
            ├── connection_state.hpp
            ├── connection_state_data.hpp
            ├── execute.hpp
            ├── handshake.hpp
            ├── message_reader.hpp
            ├── ping.hpp
            ├── prepare_statement.hpp
            ├── quit_connection.hpp
            ├── read_buffer.hpp
            ├── read_resultset_head.hpp
            ├── read_some_rows.hpp
            ├── read_some_rows_dynamic.hpp
            ├── reset_connection.hpp
            ├── run_pipeline.hpp
            ├── set_character_set.hpp
            ├── start_execution.hpp
            ├── top_level_algo.hpp
          ├── ssl_context_with_default.hpp
          ├── variant_stream.hpp
        ├── is_fatal_error.ipp
        ├── meta_check_context.ipp
        ├── pfr.hpp
        ├── pipeline.ipp
        ├── results_impl.ipp
        ├── resultset.ipp
        ├── row_impl.ipp
        ├── statement.hpp
        ├── static_execution_state_impl.ipp
        ├── static_results_impl.ipp
      ├── is_fatal_error.hpp
      ├── mariadb_collations.hpp
      ├── mariadb_server_errc.hpp
      ├── metadata.hpp
      ├── metadata_collection_view.hpp
      ├── metadata_mode.hpp
      ├── mysql_collations.hpp
      ├── mysql_server_errc.hpp
      ├── pfr.hpp
      ├── pipeline.hpp
      ├── pool_params.hpp
      ├── results.hpp
      ├── resultset.hpp
      ├── resultset_view.hpp
      ├── row.hpp
      ├── row_view.hpp
      ├── rows.hpp
      ├── rows_view.hpp
      ├── src.hpp
      ├── ssl_mode.hpp
      ├── statement.hpp
      ├── static_execution_state.hpp
      ├── static_results.hpp
      ├── string_view.hpp
      ├── tcp.hpp
      ├── tcp_ssl.hpp
      ├── throw_on_error.hpp
      ├── time.hpp
      ├── underlying_row.hpp
      ├── unix.hpp
      ├── unix_ssl.hpp
├── index.html
  ├── meta
  ├── libraries.json
├── readme.txt
  ├── test
  ├── CMakeLists.txt
  ├── Jamfile
    ├── cmake_b2_separate_compilation_test
    ├── CMakeLists.txt
    ├── boost_mysql.cpp
    ├── main.cpp
    ├── cmake_b2_test
    ├── CMakeLists.txt
    ├── main.cpp
    ├── cmake_test
    ├── CMakeLists.txt
    ├── main.cpp
    ├── common
      ├── include
        ├── test_common
        ├── assert_buffer_equals.hpp
        ├── buffer_concat.hpp
        ├── check_meta.hpp
        ├── ci_server.hpp
        ├── create_basic.hpp
        ├── create_diagnostics.hpp
        ├── has_ranges.hpp
        ├── netfun_helpers.hpp
        ├── netfun_maker.hpp
        ├── network_result.hpp
        ├── printing.hpp
        ├── stringize.hpp
        ├── tracker_executor.hpp
        ├── validate_string_contains.hpp
      ├── src
      ├── boost_asio.cpp
      ├── boost_mysql.cpp
      ├── entry_point.cpp
      ├── printing.cpp
      ├── tracker_executor.cpp
    ├── fuzzing
    ├── Jamfile
    ├── fuzz_auth_switch.cpp
    ├── fuzz_column_definition.cpp
    ├── fuzz_err_packet.cpp
    ├── fuzz_escape_string.cpp
    ├── fuzz_execute_response.cpp
    ├── fuzz_format_args.cpp
    ├── fuzz_format_identifier.cpp
    ├── fuzz_format_sql_injection.cpp
    ├── fuzz_format_strings.cpp
    ├── fuzz_handshake_server_response.cpp
    ├── fuzz_ok_packet.cpp
    ├── fuzz_ok_response.cpp
    ├── fuzz_prepare_stmt_response.cpp
    ├── fuzz_row.cpp
    ├── fuzz_row_message.cpp
    ├── fuzz_server_hello.cpp
    ├── fuzz_text_field.cpp
    ├── fuzz_utf8mb4.cpp
    ├── integration
    ├── CMakeLists.txt
    ├── Jamfile
    ├── db_setup.sql
    ├── db_setup_sha256.sql
      ├── include
        ├── test_integration
        ├── common.hpp
        ├── er_connection.hpp
        ├── er_network_variant.hpp
        ├── get_endpoint.hpp
        ├── metadata_validator.hpp
        ├── network_test.hpp
        ├── run_stackful_coro.hpp
        ├── server_ca.hpp
          ├── snippets
          ├── credentials.hpp
          ├── describe.hpp
          ├── get_any_connection.hpp
          ├── get_connection.hpp
          ├── run_coro.hpp
        ├── static_rows.hpp
        ├── streams.hpp
        ├── tcp_network_fixture.hpp
    ├── pch.hpp
      ├── src
      ├── async_callback.cpp
      ├── async_coroutines.cpp
      ├── async_coroutinescpp20.cpp
      ├── er_impl_common.hpp
      ├── er_network_variant.cpp
      ├── get_endpoint.cpp
      ├── metadata_validator.cpp
      ├── sync_errc.cpp
      ├── sync_exc.cpp
      ├── test
      ├── any_connection.cpp
      ├── character_set_tracking.cpp
      ├── connection_pool.cpp
      ├── crud.cpp
      ├── database_types.cpp
      ├── db_specific.cpp
      ├── handshake.cpp
      ├── multi_queries.cpp
      ├── pipeline.cpp
      ├── prepared_statements.cpp
      ├── reconnect.cpp
        ├── snippets
        ├── any_connection.cpp
        ├── charsets.cpp
        ├── connection_pool.cpp
        ├── dynamic.cpp
        ├── metadata.cpp
        ├── multi_function.cpp
        ├── multi_resultset.cpp
        ├── overview.cpp
        ├── pipeline.cpp
        ├── prepared_statements.cpp
        ├── sql_formatting.cpp
        ├── sql_formatting_custom.cpp
        ├── static.cpp
        ├── time_types.cpp
      ├── spotchecks.cpp
      ├── static_interface.cpp
      ├── stored_procedures.cpp
    ├── thread_safety
    ├── Jamfile
    ├── connection_pool.cpp
    ├── unit
    ├── CMakeLists.txt
    ├── Jamfile
      ├── include
        ├── test_unit
        ├── algo_test.hpp
        ├── create_coldef_frame.hpp
        ├── create_err.hpp
        ├── create_execution_processor.hpp
        ├── create_frame.hpp
        ├── create_meta.hpp
        ├── create_ok.hpp
        ├── create_ok_frame.hpp
        ├── create_prepare_statement_response.hpp
        ├── create_query_frame.hpp
        ├── create_row_message.hpp
        ├── create_statement.hpp
        ├── custom_allocator.hpp
        ├── fail_count.hpp
        ├── ff_charset.hpp
        ├── mock_execution_processor.hpp
        ├── mock_message.hpp
        ├── printing.hpp
        ├── row_identity.hpp
        ├── run_coroutine.hpp
        ├── test_stream.hpp
    ├── pch.hpp
      ├── src
      ├── printing.cpp
      ├── test_stream.cpp
      ├── test
      ├── any_address.cpp
      ├── any_connection.cpp
        ├── auth
        ├── auth.cpp
      ├── character_set.cpp
      ├── client_errc.cpp
      ├── common_server_errc.cpp
      ├── connection.cpp
      ├── connection_pool.cpp
        ├── connection_pool
        ├── connection_pool_impl.cpp
        ├── mock_timer.hpp
        ├── run_with_timeout.cpp
        ├── sansio_connection_node.cpp
        ├── timer_list.cpp
        ├── wait_group.cpp
      ├── constant_string_view.cpp
      ├── date.cpp
      ├── datetime.cpp
        ├── detail
        ├── connect_params_helpers.cpp
        ├── datetime.cpp
        ├── engine_impl.cpp
        ├── execution_concepts.cpp
        ├── output_string.cpp
        ├── row_impl.cpp
        ├── rows_iterator.cpp
        ├── socket_stream.cpp
          ├── typing
          ├── meta_check_context.cpp
          ├── pos_map.cpp
          ├── readable_field_traits.cpp
          ├── row_traits.cpp
        ├── writable_field_traits.cpp
      ├── diagnostics.cpp
      ├── escape_string.cpp
        ├── execution_processor
        ├── execution_processor.cpp
        ├── execution_processor_helpers.hpp
        ├── execution_state_impl.cpp
        ├── results_impl.cpp
        ├── static_execution_processor_helpers.hpp
        ├── static_execution_state_impl.cpp
        ├── static_results_impl.cpp
      ├── execution_state.cpp
      ├── field.cpp
      ├── field_view.cpp
        ├── format_sql
        ├── api.cpp
        ├── basic_format_context.cpp
        ├── custom_formatter.cpp
        ├── format_common.hpp
        ├── format_strings.cpp
        ├── formattable.cpp
        ├── formattable_ref.cpp
        ├── individual_value.cpp
        ├── ranges.cpp
        ├── sequence.cpp
        ├── impl
        ├── dt_to_string.cpp
        ├── ssl_context_with_default.cpp
      ├── is_fatal_error.cpp
      ├── mariadb_server_errc.cpp
      ├── metadata.cpp
      ├── mysql_server_errc.cpp
      ├── pfr.cpp
      ├── pipeline.cpp
      ├── pool_params.cpp
        ├── protocol
        ├── binary_protocol.cpp
        ├── capabilities.cpp
        ├── deserialization.cpp
        ├── deserialization_context.cpp
        ├── frame_header.cpp
        ├── null_bitmap.cpp
        ├── operators.hpp
        ├── protocol_field_type.cpp
        ├── protocol_types.cpp
        ├── serialization.cpp
        ├── serialization_context.cpp
        ├── serialization_test.hpp
        ├── static_buffer.cpp
        ├── text_protocol.cpp
      ├── results.cpp
      ├── resultset.cpp
      ├── resultset_view.cpp
      ├── row.cpp
      ├── row_view.cpp
      ├── rows.cpp
      ├── rows_view.cpp
        ├── sansio
        ├── close_statement.cpp
        ├── execute.cpp
        ├── message_reader.cpp
        ├── ping.cpp
        ├── prepare_statement.cpp
        ├── read_buffer.cpp
        ├── read_resultset_head.cpp
        ├── read_some_rows.cpp
        ├── read_some_rows_dynamic.cpp
        ├── reset_connection.cpp
        ├── run_pipeline.cpp
        ├── set_character_set.cpp
        ├── start_execution.cpp
        ├── top_level_algo.cpp
        ├── spotchecks
        ├── connection_use_after_move.cpp
        ├── default_completion_tokens.cpp
        ├── misc.cpp
        ├── multifn.cpp
        ├── read_some_rows_static.cpp
      ├── statement.cpp
      ├── static_execution_state.cpp
      ├── static_results.cpp
      ├── throw_on_error.cpp
  ├── tools
    ├── ci
      ├── ci_util
      ├── __init__.py
      ├── b2.py
      ├── cmake.py
      ├── common.py
      ├── db_setup.py
      ├── docs.py
      ├── fuzz.py
      ├── install_boost.py
      ├── main.py
      ├── seed_corpus.py
    ├── main.py
    ├── seed_corpus.py
    ├── docker
    ├── build-clang11.dockerfile
    ├── build-clang14.dockerfile
    ├── build-clang16-i386.dockerfile
    ├── build-clang16.dockerfile
    ├── build-clang17.dockerfile
    ├── build-clang18.dockerfile
    ├── build-clang3_6.dockerfile
    ├── build-clang7.dockerfile
    ├── build-cmake3_8.dockerfile
    ├── build-docs.dockerfile
    ├── build-gcc10.dockerfile
    ├── build-gcc11.dockerfile
    ├── build-gcc13.dockerfile
    ├── build-gcc14.dockerfile
    ├── build-gcc5.dockerfile
    ├── build-gcc6.dockerfile
    ├── build-msvc.dockerfile
    ├── build-noopenssl.dockerfile
    ├── install_build_docs.sh
    ├── mariadb.dockerfile
    ├── mysql5.dockerfile
    ├── mysql8.dockerfile
    ├── mysql9.dockerfile
    ├── ssl.cnf
    ├── unix-socket.cnf
  ├── error_codes.csv
  ├── osx-ci.cnf
    ├── scripts
    ├── build_unix_local.sh
    ├── build_windows_local.bat
    ├── check_links.py
    ├── collations.py
    ├── corpus_field_table.py
    ├── file_headers.py
    ├── server_errors.py
    ├── seed_corpus
    ├── field_table.csv
    ├── protocol_messages.csv
    ├── sql_injection_payloads.txt
  ├── setup_db_osx.sh
    ├── ssl
    ├── ca-cert.pem
    ├── server-cert.pem
    ├── server-key.pem
  ├── user-config-osx-gha.jam
  ├── valgrind_suppressions.txt
  ├── win-ci.cnf
创作时间: