kết nối với MySQL từ dòng lệnh


225

Làm thế nào bạn có thể kết nối với MySQL từ dòng lệnh trong máy Mac? (tức là cho tôi xem mã)

Tôi đang thực hiện một hướng dẫn PHP / SQL, nhưng nó bắt đầu bằng cách giả sử bạn đã ở trong MySQL.

Câu trả lời:


404

Xem tại đây http://dev.mysql.com/doc/refman/5.0/en/connecting.html

mysql -u USERNAME -pPASSWORD -h HOSTNAMEORIP DATABASENAME 

Các tùy chọn trên có nghĩa là:

-u: username
-p: password (**no space between -p and the password text**)
-h: host
last one is name of the database that you wanted to connect. 

Nhìn vào liên kết, nó chi tiết ở đó!


Như Rick đã đề cập , bạn có thể tránh truyền mật khẩu như một phần của lệnh bằng cách không truyền mật khẩu như thế này:

mysql -u USERNAME -h HOSTNAMEORIP DATABASENAME -p

Mọi người chỉnh sửa câu trả lời này: XIN ĐỪNG THÊM MỘT KHÔNG GIAN giữa -pPASSWORD


cảm ơn bạn, 2 câu hỏi 1) bạn có phải bao gồm "- u" "- p", v.v., hoặc những câu hỏi được thay thế bởi tên người dùng, v.v. 2) nếu không có cơ sở dữ liệu nào được tạo ra bạn có để trống không?
Leahcim

2
Có thể thiết lập xác thực MySQL dựa trên người dùng mà bạn đã đăng nhập hoặc hoàn toàn không xác thực, nhưng cũng không phải là một ý tưởng hay, Việc chỉ định mật khẩu trên dòng lệnh thậm chí là một rủi ro bảo mật nhỏ vì nó kết thúc trong lệnh của bạn bảng lịch sử và quy trình. Nếu bạn để lại mật khẩu, nó sẽ hỏi bạn.
dj_segfault

@Michael 1) đã cập nhật. ALL-CAPS cần được thay thế bằng các giá trị thực tế. để lại -u, -p, -h vì nó là 2) có. Sau khi đăng nhập loại show databasesđể xem danh sách các cơ sở dữ liệu.
Nishant

3
@dj_segfault đúng. Vì vậy, nếu bạn rời đi, -pmà không chỉ định mật khẩu, nó sẽ nhắc bạn nhập mật khẩu.
Nishant

Nếu bạn hiện không có cơ sở dữ liệu được tạo, bạn cần sử dụng lệnh mysqladmin để tạo cơ sở dữ liệu . Nhưng tôi tin rằng khi bạn cài đặt máy chủ, cơ sở dữ liệu "mysql" mặc định được tạo, chứa tất cả thông tin xác thực và lược đồ. Bạn có thể đăng nhập vào đó (nếu bạn có đủ đặc quyền) và tạo các cơ sở dữ liệu khác từ đó.
dj_segfault

128

Thực hành tốt nhất sẽ là mysql -u root -p. Sau đó, MySQL sẽ nhắc nhập mật khẩu sau khi bạn nhấn enter.


25
Để giải thích, điều này giữ cho mật khẩu của bạn không hiển thị .bash_history. Sử dụng phương pháp được bình chọn hàng đầu hiện tại, nếu ai đó có quyền truy cập $HOME(và do đó .bash_history), họ cũng có chi tiết xác thực của bạn - thật đáng sợ! Kiểu xâm nhập này có thể (và không ) xảy ra ...
Jeremy

Bạn có thể thực thi lệnh bash mà không cần hiển thị trong .bash_profie. Đọc thêm ở đây: commandlinefu.com/commands/view/1512/...
Skid Kadda

@Jeremy Không chỉ trong .bash_historymà còn trong topvà nhiều công cụ nữa! Bạn thậm chí có thể bảo mật các tệp của mình, chỉ cần chia sẻ máy tính với người dùng hợp pháp khác.
Melebius

+1 vì mật khẩu của tôi có các ký hiệu đặc biệt trong đó và nó sẽ không phân tích khi một phần của lệnh, nó phải được thực hiện riêng.
Jacksonkr

10

Sử dụng lệnh sau để kết nối với cơ sở dữ liệu MySQL của bạn

mysql -u USERNAME -h HOSTNAME -p


9

Sau khi bạn chạy MySQL Shell và bạn đã thấy như sau:

mysql-js>

Đầu tiên, bạn nên:

mysql-js>\sql

Thứ hai:

 mysql-sql>\connect username@servername (root@localhost)

Và cuối cùng:

Enter password:*********

3

Một cách để kết nối trực tiếp với MySQL bằng tên người dùng và mật khẩu MySQL thích hợp là:

mysql --user=root --password=mypass

Đây,

root is the MySQL username
mypass is the MySQL user password

Điều này rất hữu ích nếu bạn có một mật khẩu trống.

Ví dụ: nếu bạn có người dùng MySQL được gọi rootvới mật khẩu trống, chỉ cần sử dụng

mysql --user=root --password=

0

Điều này làm việc cho tôi :: -

mysql --host=hostNameorIp --user=username --password=password  

hoặc là

mysql --host=hostNameorIp --user=username --password=password database_name
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.