Open cosminbegu opened 6 months ago
Hi @cosminbegu
Thanks for your report. Can you please share the error log from readyset and also which version are you using?
We performed some upgrade of underlining mysql libraries we use. When running readyset on top of current main branch I can connect with users that have an @
in the password:
readyset --upstream-db-url=mysql://readyset:p@assword@127.0.0.1:3308/test
2024-03-19T18:30:33.774243Z INFO readyset: Starting ReadySet adapter options=Options { address: None, deployment: "readyset.db", database_type: None, deployment_mode: Standalone, standalone: false, embedded_readers: false, authority: Standalone, authority_address: ".", log_slow: false, allow_unauthenticated_connections: false, query_caching: Explicit, max_processing_minutes: 15, migration_task_interval: 20000, metrics_address: 0.0.0.0:6034, username: None, password: None, prometheus_metrics: true, noria_metrics: false, query_log_mode: Enabled, external_address: None, tracing: Options { log_path: None, log_rotation: Daily, log_format: Full, no_color: false, log_level: "info", tracing_host: None, tracing_sample_percent: Percent(0.01), statement_logging: false, statement_log_path: None }, psql_options: Options { readyset_identity_file: None, readyset_identity_file_password: None, postgres_authentication_method: ScramSha256 }, allow_unsupported_set: false, unsupported_set_mode: Error, views_polling_interval: 5, migration_request_timeout_ms: 1800000, controller_request_timeout_ms: 5000, query_max_failure_seconds: 9223372036854775, fallback_recovery_seconds: 0, non_blocking_reads: false, server_worker_options: WorkerOptions { durability: Permanent, persistence_threads: None, memory_limit: 0, memory_check_freq: 1, eviction_kind: LRU, no_partial: false, allow_full_materialization: false, enable_packet_filters: false, min_workers: 1, shards: 0, volume_id: None, enable_experimental_topk_support: false, enable_experimental_paginate_support: false, enable_experimental_mixed_comparisons: false, enable_experimental_straddled_joins: false, enable_experimental_post_lookup: false, storage_dir: None, db_dir: None, domain_replication_options: ReplicationOptions { reader_replicas: None, non_base_replicas: None }, replicator_config: UpstreamConfig { upstream_db_url: Some("mysql://readyset:p@assword@127.0.0.1:3308/test"), disable_upstream_ssl_verification: false, ssl_root_cert: None, disable_setup_ddl_replication: false, replication_server_id: None, replicator_restart_timeout: 1s, replication_tables: None, replication_tables_ignore: None, snapshot_report_interval_secs: 30, max_parallel_snapshot_tables: None, replication_pool_size: 50, ignore_ulimit_check: false, status_update_interval_secs: 10 }, worker_request_timeout_seconds: 1800, background_recovery_interval_seconds: 20, verbose_domain_metrics: false }, disable_telemetry: false, wait_for_failpoint: false, experimental_placeholder_inlining: false, no_upstream_connections: false, cleanup: false, controller_address: None, query_status_capacity: 100000, cache_ddl_address: None }
2024-03-19T18:30:33.775224Z INFO readyset: version={release-version: unknown-release-version, commit_id: c79c063b501be11b529f23cac2ed4c559042583e, platform: aarch64-apple-darwin, rustc_version: rustc 1.75.0-nightly (fdaaaf9f9 2023-11-08), profile: debug, opt_level: 0}
2024-03-19T18:30:33.775732Z INFO readyset: Listening for new connections listen_address=127.0.0.1:3307
2024-03-19T18:30:33.776309Z INFO Connecting to RS server: readyset: options.authority_address=. options.deployment=readyset.db
2024-03-19T18:30:33.796795Z INFO Connecting to RS server: readyset: ReadySetHandle created
2024-03-19T18:30:33.797106Z INFO Connecting to RS server: readyset: Now capturing ctrl-c and SIGTERM events
2024-03-19T18:30:33.797821Z INFO Connecting to RS server: readyset: PrometheusHandle created
2024-03-19T18:30:33.798102Z INFO Connecting to RS server: readyset: Query logs are enabled. Spawning query logger
2024-03-19T18:30:33.798318Z INFO Connecting to RS server: readyset: Will perform Blocking Reads
2024-03-19T18:30:33.798328Z INFO Connecting to RS server: readyset: migration_style=Explicit
2024-03-19T18:30:33.799385Z INFO Connecting to RS server: readyset: migration_mode=OutOfBand
2024-03-19T18:30:33.799413Z INFO Connecting to RS server: readyset: Spawning HTTP request server task
2024-03-19T18:30:33.805094Z INFO Connecting to RS server: readyset: Spawning migration handler task
2024-03-19T18:30:33.805168Z INFO Connecting to RS server: readyset: Spawning explicit migrations task
2024-03-19T18:30:33.805483Z INFO readyset_server::builder: Using 8 persistence threads
2024-03-19T18:30:33.806788Z INFO Connecting to RS server: readyset: supported=false
2024-03-19T18:30:33.820127Z INFO readyset_server::controller: won leader election, creating Leader
2024-03-19T18:30:33.820984Z INFO readyset_server::controller::inner: received registration payload from worker worker_uri=http://127.0.0.1:6033/ reader_addr=127.0.0.1:4000
2024-03-19T18:30:33.821733Z INFO readyset_server::worker: worker informed of new controller controller_uri=http://127.0.0.1:6033/
2024-03-19T18:30:33.822394Z INFO readyset_server::worker: controller requested that this worker clears its existing domains
2024-03-19T18:30:33.822993Z INFO readyset_server::controller::inner: now have 1 of 1 required workers
2024-03-19T18:30:33.823246Z INFO plan_recovery: readyset_server::controller::state: Planning recovery
2024-03-19T18:30:33.824308Z INFO readyset_server::controller::inner: Finished planning recovery with all domains placed
2024-03-19T18:30:34.095426Z INFO taking database snapshot: replicators::noria_adapter: Starting snapshot
2024-03-19T18:30:34.258817Z INFO taking database snapshot: replicators::mysql_connector::snapshot: Replication offset already exists for table, skipping snapshot table=`test`.`t2`
2024-03-19T18:30:34.258827Z INFO taking database snapshot: replicators::mysql_connector::snapshot: Replication offset already exists for table, skipping snapshot table=`test`.`t1`
2024-03-19T18:30:34.260036Z INFO taking database snapshot: replicators::noria_adapter: Snapshot finished
2024-03-19T18:30:34.323969Z INFO replicators::mysql_connector::connector: Starting binlog replication next_position=binlog.000005:1003
2024-03-19T18:30:34.324177Z INFO replicators::noria_adapter: MySQL connected
2024-03-19T18:30:34.324187Z INFO replicators::noria_adapter: binlog_position=binlog.000005:1003
2024-03-19T18:30:34.823249Z INFO readyset_server::worker: worker informed of new controller controller_uri=http://127.0.0.1:6033/
marcelo ~ $ mysql -u readyset -p'p@assword' -h 127.1 -P3307 -e "SHOW READYSET STATUS"
mysql: [Warning] Using a password on the command line interface can be insecure.
+----------------------------+-------------------------+
| Variable_name | Value |
+----------------------------+-------------------------+
| Database Connection | Connected |
| Connection Count | 1 |
| Snapshot Status | Completed |
| Maximum Replication Offset | binlog.000005:1003 |
| Minimum Replication Offset | binlog.000005:1003 |
| Last started Controller | 2024-03-19 18:30:33 UTC |
| Last completed snapshot | 2024-03-19 18:30:34 UTC |
| Last started replication | 2024-03-19 18:30:34 UTC |
+----------------------------+-------------------------+
Describe the problem Hi, when using the following connection string: mysql://bigdata:BigD@ta@127.0.0.1:3306/bigdata the password includes the @ if that is the case it will fail to connect.
To Reproduce Use @ as part of the user password.