Developer on Alibaba Coud: Build your first app with APIs, SDKs, and tutorials on the Alibaba Cloud. Read more ＞
Teach you how to deal with MySQL databases easily
I. MYSQL connection format: Mysql-h host address
-U user name
-P user password
1. Example 1: Connect to MySQL on the local machine:
First, open the DOS window, enter the directory mysqlbin, then type the command mysql-uroot-p, and press enter to prompt you to enter the password. if you have just installed MYSQL, super User root has no password, so press enter to enter MYSQL. the MYSQL prompt is: mysql>.
2. Example 2: Connect to MYSQL on the remote host. Assume that the IP address of the remote host is 22.214.171.124, the user name is root, and the password is abcd123. Run the following command: mysql-h126.96.36.199-uroot-pabcd123.
3. exit MYSQL command: exit (press enter ).
II. change the password Format: mysqladmin-u username-p old password new password
1. Example 1: add a password ab12 to the root user. First, enter the directory mysqlbin in DOS, and then type the following command:
Note: Because the root account does not have a password at the beginning, the old-p password can be omitted.
2. Example 2: change the root password to djg345:
Mysqladmin-uroot-pab12 password djg345
3. add new users (Note: Unlike the above, the following commands in the MYSQL environment are followed by a semicolon as the command Terminator)
Grant select on database .*
To username @ login host identified by "password"
Example 1: add a user named "test1" with the password "abc" so that the user can log on to any host and have the permission to query, insert, modify, and delete all databases. First, use the root user to connect to MYSQL, and then type the following command:
Grant select, insert, update,
Delete on *. * to test1 @ "%" Identified by "abc ";
However, the user added in Example 1 is very dangerous. if someone knows the password of test1, then he can log on to your mysql database on any computer on the internet and do whatever he wants. for the solution, see example 2.
Example 2: Add a user named "test2" with the password "abc" so that the user can only log on to localhost, you can also query, insert, modify, and delete the database mydb (localhost refers to the local host, that is, the host where the MYSQL database is located), so that the user knows the password of test2, he cannot access the database directly from the internet, but can only access the database through the web pages on the MYSQL host.
Grant select, insert, update, delete on mydb. * to test2 @ localhost identified by "abc ";
If you do not want test2 to have a password, you can run another command to remove the password.
Grant select, insert, update, delete on mydb. * to test2 @ localhost identified "";
Note: you must first log on to MYSQL. the following operations are performed at the MYSQL prompt and each command ends with a semicolon.
IV. operation skills 1. if you forget the extra points after you press enter when making the command, you don't have to repeat the command. you just need to press a semicolon to press Enter. That is to say, you can divide a complete command into several lines, and then use a semicolon as the end sign to complete the operation.
2. you can use the cursor to bring up or down the previous commands. However, an old MYSQL version I used earlier does not support this feature. I am using: mysql-3.23.27-beta-win.
5. display commands 1. display the database list: show databases;
At the beginning, there were only two databases: mysql and test. The mysql database contains the MYSQL system information. we change the password and add new users to use this database for operations.
2. display the data table in the database:
// Open the database. if you have learned FOXBASE, you will be familiar with it.
3. display the structure of the data table: describe table name;
4. database creation: create database name;
5. create a table:
Use database name;
Create table name (field setting list );
6. delete databases and tables:
Drop database name;
Drop table name;
7. clear the records in the table: delete from table name;
8. display records in the table: select * from table name;
6. an instance for creating a database, creating a table, and inserting data, drop database if exists school; // delete the instance if SCHOOL exists.
Create database school;
// Create a database SCHOOL
// Open the SCHOOL library
Create table teacher
// Create a table named TEACHER.
Id int (3) auto_increment not null primary key,
Name char (10) not null,
Address varchar (50) default shenzhen,
); // Table creation ends
// Insert fields as follows
Insert into teacher valuess
(, Glchengang, Shenzhen No. 1 Middle School, 1976-10-10 );
Insert into teacher valuess
(, Jack, Shenzhen No. 1 Middle School, 1975-12-23 );
Note: in the table in progress (1), set the ID to a numeric field of 3: int (3) and make it automatically add one: auto_increment for each record. it cannot be blank: not null and set it as the main field primary key (2) set NAME to the character field with a length of 10 (3) set ADDRESS to the character field with a length of 50, the default value is Shenzhen. What is the difference between varchar and char? it will only be discussed later. (4) set YEAR as the date field.
If you type the preceding command at the mysql prompt, debugging is not convenient. You can write the preceding command as is to a text file, assuming it is school. SQL, then copy it to c:, and enter the directory mysqlbin in DOS state, and then type the following command:
If it succeeds, no display is displayed for a blank row. if there is an error, a prompt is displayed. (The preceding command has been debugged. you only need to remove the // annotation to use it ).
7. transfer text materials to the database 1. text data should conform to the format: field data should be separated by the tab key, and the null value should be replaced by n.
4 mike: Shenzhen No. 1,-12-23
2. data input command load data local infile "file name" into table name;
Note: You 'd better copy the file to the mysqlbin directory and use the use command to create the database where the table is located.
8. back up the database:
(The command is executed in the DOS mysqlbin directory)
Mysqldump -- opt school> school. bbb
Note: back up the database school to the school. bbb file. school. bbb is a text file with any file name. open it and you will find new discoveries.
Because this method has not been verified in the official documentation, we call it a test.
Objective: to back up a mysql database TestA in the hostA host and restore it to the hostB host
Operating system: WinNT4.0, Mysql3.22.34, and phpMyAdmin 2.1.0
Install mysql database in hostA and create TestA database
The mysql database is installed on the hostB machine, and there is no TestA database
Start phpMyAdmin to check the database list in HostA and HostB. no TestA database exists in HostB.
Find the mysql installation directory in HostA, and find the Database Directory data
In my test environment, this directory is
Find the subdirectory of the corresponding database name
Paste and copy the file to the Data directory of HostB, which is the same as the file in the Data directory of HostB Mysql.
REFRESH The phpMyAdmin of HostB and check the database list. we can see that TestA has appeared, and the query and modification operations are normal. the backup recovery is successful.
Test conclusion: Mysql databases can be stored in the form of files, backup, recovery as long as the corresponding file directory can be restored, no need to use other tools to back up.
II. Formal method (officially recommended ):
MySQL mysqldump is used for export. The basic usage is as follows:
Mysqldump [OPTIONS] database [tables]
If you do not specify any tables, the entire database will be exported.
Run mysqldump -- help to obtain the option table supported by your mysqldump version.
Note: If you run mysqldump without the -- quick or -- opt option, mysqldump loads the entire result set to the memory before the export result. if you are exporting a large database, this may be a problem.
Mysqldump supports the following options:
Add lock tables and unlock table before each TABLE is exported. (To make it faster to insert data to MySQL ).
Add a drop table before each create statement.
Names of columns allowed to be created as keywords. This is done by adding the table name before the column name.
-C, -- complete-insert
Use the complete insert statement (with the column name ).
-C, -- compress
If both the client and server support compression, all information is compressed between the two.
Use the insert delayed command to INSERT rows.
-E, -- extended-insert
Use the new multiline INSERT syntax. (A more compact and faster insert statement is provided)
-#, -- Debug [= option_string]
Tracking program usage (for debugging ).
Displays a help message and exits.
-- Fields-terminated-by =...
-- Fields-enclosed-by =...
-- Fields-optionally-enclosed-by =...
-- Fields-escaped-by =...
-- Fields-terminated-by =...
These options are used with-T options and have the same meaning as the load data infile clause.
Load data infile syntax.
-F, -- flush-logs
Wash out the log files on the MySQL server before starting the export.
-F, -- force,
Even if we get an SQL error while exporting a table, continue.
-H, -- host = ..
Export data from the MySQL server on the named host. The default host is localhost.
-L, -- lock-tables.
Lock All tables for start export.
-T, -- no-create-info
Create table statement)
-D, -- no-data
No row information is written to the table. If you only want to export the structure of a table, this is very useful!
Same as -- quick -- add-drop-table -- add-locks -- extended-insert -- lock-tables.
You should be given the fastest export possible for reading a MySQL server.
-Pyour_pass, -- password [= your_pass]
The password used to connect to the server. If you do not specify "= your_pass", mysqldump requires a password from the terminal.
-P port_num, -- port = port_num
The TCP/IP port used to connect to a host. (This is used to connect to a host other than localhost because it uses Unix sockets .)
-Q, -- quick
Directly export the data to stdout without buffering the query; use mysql_use_result () to do it.
-S/path/to/socket, -- socket =/path/to/socket
The socket file used when connecting to localhost (which is the default host.
-T, -- tab = path-to-some-directory
For each given table, CREATE a table_name. SQL file that contains the SQL CREATE command and a table_name.txt file that contains data. Note: This only works when mysqldump runs on the same machine where the mysqld daemon is running .. The format of the txt file is determined by the options -- fields-xxx and -- lines -- xxx.
-U user_name, -- user = user_name
The username used by MySQL to connect to the server. The default value is your Unix login name.
-O var = option, -- set-variable var = option
Set the value of a variable. Possible variables are listed below.
-V, -- verbose
Lengthy mode. Print out more information about the program.
-V, -- version
Print the version information and exit.
-W, -- where = 'Where-condition'
Only selected records are exported. Note that the quotation marks are mandatory!
"-- Where = user = 'jimf '"-wuserid> 1 ""-wuserid <1"
The most common use of mysqldump may make a backup of the entire database:
Mysqldump -- opt database> backup-file. SQL
However, it is also useful for enriching another MySQL database with information from one database:
This article is an English version of an article which is originally in the Chinese language on aliyun.com and is provided for information purposes only. This website makes no representation or warranty of any kind, either expressed or implied, as to the accuracy, completeness ownership or
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
and provide relevant evidence. A staff member will contact you within 5 working days.