Tôi có máy chủ MySQL 5.5 trên Windows 2012R2. Cơ sở dữ liệu không hoạt động tốt, vì vậy tôi đã tạo ra một ini tại Percona và thay thế Ini cũ của tôi.
Máy chủ hiện đang hoạt động tốt, nhưng bây giờ tôi không thể đăng nhập làm root, mặc dù tôi chắc chắn rằng tôi có đúng mật khẩu. Sau đó, tôi muốn thay đổi mật khẩu gốc. Nhưng điều đó cũng không hoạt động.
Việc thay đổi INI có ảnh hưởng đến mật khẩu người dùng không?
Ini cũ của tôi:
[client]
port=3306
[mysql]
default-character-set=UTF8
[mysqld]
max-allowed_packet = 64M
wait-timeout = 6000
slow_query_log_file = d:/mysql/slow-queries.log
long_query_time=10
port=3306
basedir="C:/Program Files/MySQL/MySQL Server 5.5/"
datadir="D:/mysql/"
character-set-server=UTF8
default-storage-engine=INNODB
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
max_connections=150
query_cache_size=0
table_cache=256
tmp_table_size=16M
max_heap_table_size=16M
thread_cache_size=8
myisam_max_sort_file_size=100G
myisam_sort_buffer_size=69M
key_buffer_size=55M
read_buffer_size=64K
read_rnd_buffer_size=256K
sort_buffer_size=256K
innodb_additional_mem_pool_size=3M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=2M
innodb_buffer_pool_size=3076M
innodb_log_file_size=768M
innodb_thread_concurrency=8
Ini mới của tôi:
[mysql]
# CLIENT #
port = 3306
socket = D:\mysql\mysql.sock
[mysqld]
# GENERAL #
user = mysql
default-storage-engine = InnoDB
socket = D:\mysql\mysql.sock
pid-file = D:\mysql\mysql.pid
# MyISAM #
key-buffer-size = 32M
myisam-recover = FORCE,BACKUP
# SAFETY #
max-allowed-packet = 16M
max-connect-errors = 1000000
skip-name-resolve
sql-mode = STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ONLY_FULL_GROUP_BY
sysdate-is-now = 1
innodb = FORCE
# DATA STORAGE #
datadir = D:\mysql\
# BINARY LOGGING #
log-bin = D:\mysql\mysql-bin
expire-logs-days = 14
sync-binlog = 1
# CACHES AND LIMITS #
tmp-table-size = 32M
max-heap-table-size = 32M
query-cache-type = 0
query-cache-size = 0
max-connections = 500
thread-cache-size = 50
open-files-limit = 65535
table-definition-cache = 4096
table-open-cache = 10240
# INNODB #
innodb-log-files-in-group = 2
innodb-log-file-size = 768M
innodb-flush-log-at-trx-commit = 1
innodb-file-per-table = 1
innodb-buffer-pool-size = 3076M
# LOGGING #
log-error = D:\mysql\mysql-error.log
log-queries-not-using-indexes = 1
slow-query-log = 1
slow-query-log-file = D:\mysql\mysql-slow.log
Có vẻ như tất cả các tài khoản localhost-tài khoản không còn hoạt động nữa. Có một %-Account và vẫn đang hoạt động
Tôi hy vọng ai đó có một lời giải thích tại sao tôi không thể đăng nhập như root nữa. Hoặc thậm chí tốt hơn làm cho đăng nhập gốc hoạt động trở lại.
Phải làm gì nếu không thể tìm thấy MySQL
Vấn đề
Khi bạn gọi MySQL từ dòng lệnh, trình thông dịch lệnh của bạn có thể tìm thấy nó.
Dung dịch
Thêm thư mục nơi MySQL được cài đặt vào cài đặt PATH
của bạn. Sau đó, bạn có thể chạy MySQL từ bất kỳ thư mục nào một cách dễ dàng.
Thảo luận
Nếu trình thông dịch shell hoặc lệnh của bạn có thể tìm thấy mysql khi bạn gọi nó, bạn sẽ thấy một số thông báo lỗi. Nó có thể trông giống như thế này dưới Unix:
%mysql
mysql: Command not found.
Hoặc như thế này dưới Windows:
C:\>mysql
Bad command or invalid filename
Một cách để nói với trình thông dịch lệnh của bạn nơi tìm MySQL là nhập tên đường dẫn đầy đủ của nó mỗi khi bạn chạy nó. Lệnh có thể trông giống như thế này trong Unix:
%/usr/local/mysql/bin/mysql
Hoặc như thế này dưới Windows:
C:\>"C:\Program Files\MySQL\MySQL Server 5.0\bin\mysql"
Một cách để nói với trình thông dịch lệnh của bạn nơi tìm MySQL là nhập tên đường dẫn đầy đủ của nó mỗi khi bạn chạy nó. Lệnh có thể trông giống như thế này trong Unix:not do that. If you do, you’ll be tempted to put all your datafiles and SQL batch files in the same directory as mysql, thus unnecessarily cluttering up what should be a location intended only for programs.
Gõ tên đường dẫn dài trở nên mệt mỏi khá nhanh. Bạn có thể tránh sự cần thiết phải làm như vậy bằng cách thay đổi vị trí vào thư mục nơi MySQL được cài đặt trước khi bạn chạy nó. Tuy nhiên, tôi khuyên bạn nên không làm điều đó. Nếu bạn làm như vậy, bạn sẽ bị cám dỗ để đặt tất cả các tệp DataFiles và SQL của mình vào cùng thư mục với MySQL, do đó làm lộn xộn những gì chỉ dành cho vị trí dành cho các chương trình.
Một giải pháp tốt hơn là đảm bảo rằng thư mục mà MySQL được cài đặt được bao gồm trong giá trị của biến môi trường PATH
liệt kê các tên đường dẫn của các thư mục trong đó trình thông dịch lệnh tìm kiếm các lệnh. Sau đó, bạn có thể gọi MySQL từ bất kỳ thư mục nào bằng cách nhập tên của nó và trình thông dịch lệnh của bạn sẽ có thể tìm thấy nó. Điều này loại bỏ rất nhiều tên đường dẫn không cần thiết.
Một lợi ích đáng kể bổ sung là bởi vì bạn có thể dễ dàng chạy MySQL từ bất cứ đâu, bạn đã giành chiến thắng để đưa datafiles của mình vào thư mục nơi đặt MySQL. Khi bạn không phải chạy MySQL từ một địa điểm cụ thể, bạn sẽ tự do sắp xếp các tệp của mình theo cách có ý nghĩa với bạn, không phải theo cách áp đặt bởi một số nhu cầu nhân tạo. Ví dụ: bạn có thể tạo một thư mục trong thư mục nhà của bạn cho mỗi cơ sở dữ liệu bạn có và đặt các tệp công việc được liên kết với một cơ sở dữ liệu nhất định trong thư mục thích hợp.
Để biết hướng dẫn đặt biến PATH
của bạn, xem Phụ lục & NBSP; b.
Tôi đã chỉ ra tầm quan trọng của biến đường dẫn tìm kiếm PATH
ở đây bởi vì tôi đã thấy nhiều câu hỏi từ những người không biết về sự tồn tại của một điều như vậy, và do đó cố gắng thực hiện tất cả các công việc liên quan đến MySQL của họ trong thùng thư mục nơi MySQL được cài đặt. Điều này có vẻ đặc biệt phổ biến trong số những người dùng Windows.