Hướng dẫn why database is not creating in mysql? - tại sao cơ sở dữ liệu không được tạo trong mysql?

Tôi có thể tạo cơ sở dữ liệu mới thông qua tài khoản gốc. Nhưng tôi cần tạo cơ sở dữ liệu mới bằng cách sử dụng một người dùng mới mà tôi đã tạo.

Đây là lỗi tôi đang gặp khi cố gắng tạo cơ sở dữ liệu bằng cách sử dụng người dùng mới

ERROR 1044 (42000): Access denied for user 'user'@'localhost' to database 'new_db'

Làm thế nào tôi có thể cấp quyền cho "người dùng" để nó tạo ra bất kỳ số lượng cơ sở dữ liệu mới?

Update:

Đây cũng là những gì tôi đã thử:

mysql> grant all privileges on db.* to 'user'@'%' with create;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'create option' at line 1
mysql>

Đã hỏi ngày 5 tháng 11 năm 2014 lúc 18:56Nov 5, 2014 at 18:56

Hướng dẫn why database is not creating in mysql? - tại sao cơ sở dữ liệu không được tạo trong mysql?

Vĩnh cửu vĩnh cửuEternallyCurious

2.3356 Huy hiệu vàng45 Huy hiệu bạc76 Huy hiệu đồng6 gold badges45 silver badges76 bronze badges

2

Ví dụ PHP:

$con = new mysqli("...","...","..."); // CONNECT TO DB WITH ROOT USER

mysqli_query($con, "GRANT ALL PRIVILEGES ON newdb.* TO 'user'@'%' WITH GRANT OPTION");

Ví dụ về dòng lệnh:

Đăng nhập với người dùng gốc và sử dụng điều này:

GRANT ALL PRIVILEGES ON newdb.* TO 'user'@'%' WITH GRANT OPTION;

Điều này sẽ tạo ra người dùng như thế nào được phép tạo cơ sở dữ liệu mới (nhưng cũng sẽ cung cấp cho anh ta tất cả các quyền để làm những thứ xấu, vì vậy hãy xử lý nó khôn ngoan ...).

Điều này chỉ dành cho Tạo:

GRANT CREATE ON *.* TO 'newuser'@'%' IDENTIFIED BY 'password'

Đã trả lời ngày 5 tháng 11 năm 2014 lúc 19:13Nov 5, 2014 at 19:13

Baaobaaobaao

68.7K16 Huy hiệu vàng131 Huy hiệu bạc187 Huy hiệu đồng16 gold badges131 silver badges187 bronze badges

16

13.1.12 & NBSP; Tạo câu lệnh cơ sở dữ liệu

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
    [create_option] ...

create_option: [DEFAULT] {
    CHARACTER SET [=] charset_name
  | COLLATE [=] collation_name
  | ENCRYPTION [=] {'Y' | 'N'}
}

CREATE DATABASE tạo cơ sở dữ liệu với tên đã cho. Để sử dụng câu lệnh này, bạn cần đặc quyền CREATE cho cơ sở dữ liệu. CREATE SCHEMA là một từ đồng nghĩa với CREATE DATABASE.

Một lỗi xảy ra nếu cơ sở dữ liệu tồn tại và bạn không chỉ định

mysql> grant all privileges on db.* to 'user'@'%' with create;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'create option' at line 1
mysql>
0.

CREATE DATABASE không được phép trong một phiên có câu lệnh

mysql> grant all privileges on db.* to 'user'@'%' with create;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'create option' at line 1
mysql>
2 hoạt động.

Mỗi

mysql> grant all privileges on db.* to 'user'@'%' with create;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'create option' at line 1
mysql>
3 chỉ định một đặc tính cơ sở dữ liệu. Các đặc điểm cơ sở dữ liệu được lưu trữ trong từ điển dữ liệu.

  • Tùy chọn

    mysql> grant all privileges on db.* to 'user'@'%' with create;
    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'create option' at line 1
    mysql>
    
    4 chỉ định bộ ký tự cơ sở dữ liệu mặc định. Tùy chọn
    mysql> grant all privileges on db.* to 'user'@'%' with create;
    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'create option' at line 1
    mysql>
    
    5 chỉ định đối chiếu cơ sở dữ liệu mặc định. Để biết thông tin về tập hợp ký tự và tên đối chiếu, xem Chương & NBSP; 10, bộ ký tự, đối chiếu, Unicode.

    Để xem các bộ ký tự và đối chiếu có sẵn, hãy sử dụng các câu lệnh

    mysql> grant all privileges on db.* to 'user'@'%' with create;
    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'create option' at line 1
    mysql>
    
    6 và
    mysql> grant all privileges on db.* to 'user'@'%' with create;
    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'create option' at line 1
    mysql>
    
    7, tương ứng. Xem Phần & NBSP; 13.7.7.3, Tuyên bố của SHOW SET SET SET, và Phần & NBSP; 13.7.7.4, Báo cáo đối chiếu hiển thị.

  • Tùy chọn

    mysql> grant all privileges on db.* to 'user'@'%' with create;
    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'create option' at line 1
    mysql>
    
    8, được giới thiệu trong MySQL 8.0.16, xác định mã hóa cơ sở dữ liệu mặc định, được kế thừa bởi các bảng được tạo trong cơ sở dữ liệu. Các giá trị được phép là
    mysql> grant all privileges on db.* to 'user'@'%' with create;
    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'create option' at line 1
    mysql>
    
    9 (kích hoạt mã hóa) và
    $con = new mysqli("...","...","..."); // CONNECT TO DB WITH ROOT USER
    
    mysqli_query($con, "GRANT ALL PRIVILEGES ON newdb.* TO 'user'@'%' WITH GRANT OPTION");
    
    0 (mã hóa bị vô hiệu hóa). Nếu tùy chọn
    mysql> grant all privileges on db.* to 'user'@'%' with create;
    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'create option' at line 1
    mysql>
    
    8 không được chỉ định, giá trị của biến hệ thống
    $con = new mysqli("...","...","..."); // CONNECT TO DB WITH ROOT USER
    
    mysqli_query($con, "GRANT ALL PRIVILEGES ON newdb.* TO 'user'@'%' WITH GRANT OPTION");
    
    2 xác định mã hóa cơ sở dữ liệu mặc định. Nếu biến hệ thống
    $con = new mysqli("...","...","..."); // CONNECT TO DB WITH ROOT USER
    
    mysqli_query($con, "GRANT ALL PRIVILEGES ON newdb.* TO 'user'@'%' WITH GRANT OPTION");
    
    3 được bật, đặc quyền
    $con = new mysqli("...","...","..."); // CONNECT TO DB WITH ROOT USER
    
    mysqli_query($con, "GRANT ALL PRIVILEGES ON newdb.* TO 'user'@'%' WITH GRANT OPTION");
    
    4 được yêu cầu để chỉ định cài đặt mã hóa mặc định khác với cài đặt
    $con = new mysqli("...","...","..."); // CONNECT TO DB WITH ROOT USER
    
    mysqli_query($con, "GRANT ALL PRIVILEGES ON newdb.* TO 'user'@'%' WITH GRANT OPTION");
    
    2. Để biết thêm thông tin, hãy xem xác định mặc định mã hóa cho các lược đồ và không gian bảng chung.

Một cơ sở dữ liệu trong MySQL được triển khai dưới dạng thư mục chứa các tệp tương ứng với các bảng trong cơ sở dữ liệu. Do không có bảng nào trong cơ sở dữ liệu khi nó được tạo ban đầu, câu lệnh CREATE DATABASE chỉ tạo ra một thư mục trong thư mục dữ liệu MySQL. Các quy tắc cho tên cơ sở dữ liệu cho phép được đưa ra trong Phần & NBSP; 9.2, Tên đối tượng Schema Schema. Nếu một tên cơ sở dữ liệu chứa các ký tự đặc biệt, tên cho thư mục cơ sở dữ liệu chứa các phiên bản được mã hóa của các ký tự đó như được mô tả trong Phần & NBSP; 9.2.4, ánh xạ của các định danh vào tên tệp.

Tạo một thư mục cơ sở dữ liệu bằng cách tạo một thư mục theo cách thủ công trong thư mục dữ liệu (ví dụ: với MKDIR) không được hỗ trợ trong MySQL 8.0.mkdir) is unsupported in MySQL 8.0.

Khi bạn tạo cơ sở dữ liệu, hãy để máy chủ quản lý thư mục và các tệp trong đó. Thao tác trực tiếp các thư mục và tệp cơ sở dữ liệu có thể gây ra sự không nhất quán và kết quả không mong muốn.

MySQL không có giới hạn về số lượng cơ sở dữ liệu. Hệ thống tệp cơ bản có thể có giới hạn về số lượng thư mục.

Bạn cũng có thể sử dụng chương trình MySQLadmin để tạo cơ sở dữ liệu. Xem Phần & NBSP; 4.5.2, MySqladmin - Chương trình quản trị máy chủ MySQL.mysqladmin program to create databases. See Section 4.5.2, “mysqladmin — A MySQL Server Administration Program”.


Không thể tạo cơ sở dữ liệu trong MySQL?

Lỗi này có nghĩa là máy chủ MySQL của bạn không có đủ dung lượng trống.Bạn cần kiểm tra kích thước hệ thống tệp và vui lòng xóa (các) phần mềm không mong muốn hoặc trình cài đặt hoặc tệp.your mysql server does not have enough free space. You need to check the file system size and please remove unwanted software(s) or installers or files.

Làm cách nào để tạo cơ sở dữ liệu trong mysql?

Sử dụng GUI Mở Workbench MySQL làm quản trị viên (nhấp chuột phải, chạy làm quản trị viên).Nhấp vào Tệp> Tạo lược đồ để tạo lược đồ cơ sở dữ liệu.Nhập tên cho lược đồ và nhấp vào Áp dụng.Trong tập lệnh SQL áp dụng cho cơ sở dữ liệu, nhấp vào Áp dụng để chạy lệnh SQL tạo lược đồ.Open the MySQL Workbench as an administrator (Right-click, Run as Admin). Click on File>Create Schema to create the database schema. Enter a name for the schema and click Apply. In the Apply SQL Script to Database window, click Apply to run the SQL command that creates the schema.

Tại sao cơ sở dữ liệu MySQL không kết nối?

Thông thường có nghĩa là không có máy chủ MySQL chạy trên hệ thống hoặc bạn đang sử dụng tên tệp unix không chính xác hoặc số cổng TCP/IP khi cố gắng kết nối với máy chủ.Bạn cũng nên kiểm tra xem cổng TCP/IP bạn đang sử dụng chưa bị chặn bởi tường lửa hoặc dịch vụ chặn cổng.there is no MySQL server running on the system or that you are using an incorrect Unix socket file name or TCP/IP port number when trying to connect to the server. You should also check that the TCP/IP port you are using has not been blocked by a firewall or port blocking service.