Table of Contents
1. Install mysql
1, CentOS system
2. Alpine system
2. Operation mysql
1. Log in to the database
2. Operation database
3. User management
4. Batch operation
三、FAQ
1. How to erase the root password if you forget it?
2. Null user error
3. Root can be used on the service, but remote login cannot be done
4. Remote connection prompts caching_sha2_password error
5. Mysql changes the default data storage
Home Database Mysql Tutorial One article summarizes Mysql database applications and common problems

One article summarizes Mysql database applications and common problems

Jan 07, 2022 pm 03:14 PM
mysql

1. Install mysql

1, CentOS system

1.) Install mysql

Download and install the repo source of mysql
$ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
$ sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
Install mysql
$ sudo yum install -y mysql-server

2.) Start/restart/shut down the service

service mysqld start | restart | stop

2. Alpine system

The mysql installed in the alpine system is actually the open source MariaDB. The MariaDB database is a branch/derivative of MySQL. It is fully compatible with MySQL and has improved functions, storage engines and some new functions. All are better than MySQL, installation reference
$ apk update

# 安装数据库及客户端
$ apk add mysql mysql-client

# 初始化数据库
$ mysql_install_db --user=mysql --datadir=/var/lib/mysql

# 启动服务
$ rc-service mariadb start  # 若没有rc,安装:apk add openrc

# 修改密码
$ mysqladmin -u root password '新root密码'

# 加入开机启动
$ rc-update add mariadb default

2. Operation mysql

1. Log in to the database

Default initialization direct login
$ mysql
If the prompt fails, explain If you have a password, run:
$ mysql -uroot -p

# 一次性登录
$ mysql -u用户 -p密码

2. Operation database

# 查看所有数据库
mysql> show databases;

# 创建数据库
mysql> create database xxx charset=utf8;

# 删除数据库
mysql> drop database xxx;

# 切换数据库
mysql> use mysql;

# 查看表
mysql> show tables;

# 创建表
mysql> create table xxx (
    id int,
    name varchar(20),
    update_time datetime
);

# 删除表
mysql> drop table xxx;

# 显示表结构
mysql> desc xxx;

# 查询指定a,b字段的记录,不知道用*代替
mysql> select a,b form xxx;

# 插入记录
mysql> insert into xxx(id,user) values(1,'wang',now());

# 删除记录
mysql> delete from xxx where name='wang';

# 清屏命令
mysql> system clear;

# 退出
mysql> quit;

3. User management

The user table of mysql is used to store all user permissions, where the host field represents the specified IP Users can use it. Two users have the same name but different hosts. Common host values ​​are as follows:

localhost: can only be used on the server side
192.168.4.%: the specified ip segment can be used
% : Wildcard, indicating that all IP users can use it, mostly used for remote connections

When creating/deleting users below, you can specify it through user@'host'. If not specified, the default is %

# 切换到mysql权限数据库
mysql> use mysql;

# 查看用户及所属的host
mysql> select user,host from user;

# 新建用户并设置密码
mysql> create user '用户名' identified by '密码';

# 上面不指定host,默认%,等同于:
mysql> create user '用户名'@'%' identified by '密码';

# 删除用户(只删除host为%的用户)
mysql> drop user '用户名';

# 查看用户权限
mysql> show grants for '用户名';

# 设置权限,并指定数据库
mysql> grant all privileges on xxxDB.* to '用户名';

# 修改密码,注意密码处不能直接password='新密码'
mysql> update user set password=password('新密码') where user='用户名';

# 刷新权限表
mysql> flush privileges;

4. Batch operation

1.) Batch execution of sql scripts

$ mysql -uroot -p -Dxxx < ./init.sql    # xxx为数据库

2.) Backup/restore database

$ mysqldump --all-databases -h127.0.0.1 -u root -p > ./backup/mysql-bak.sql
$ mysqldump --all-databases -h127.0.0.1 -u root -p < ./backup/mysql-bak.sql

三、FAQ

1. How to erase the root password if you forget it?

$ mysql –skip-grant-table &
  mysql> use mysql;
  mysql> update user set password=password('新密码') where user='root';
  mysql> flush privileges;
  mysql> quit;
What needs to be noted here is that each command needs to end with a semicolon ";". After performing the above operations, the root password will be cleared.

2. Null user error

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

Reason :

In the user table of the mysql database, there is an account with a blank user name, that is, an anonymous account. As a result, although root is used when logging in, the login is actually anonymous.

Solution:

# 1.关闭mysql
$ service mysqld stop

# 2.屏蔽权限
$ mysqld_safe --skip-grant-table # 屏幕出现: Starting demo from .....

# 3.新开起一个终端输入
$ mysql -uroot mysql
  mysql> update user set password=password('新密码') where user='root';
  mysql> flush privileges;
  mysql> quit;

3. Root can be used on the service, but remote login cannot be done

$ mysql -uroot -p
  mysql> use mysql;
  
  # 先查看user表host字段,有无通配符'%',若有直接运行flush privileges;
  mysql> select host from user where user='root';  
  mysql> grant all privileges *.* to 'root'@'%' identified by 'root密码';
  mysql> flush privileges;
  mysql> quit;

4. Remote connection prompts caching_sha2_password error

After mysql5.7 version, the caching_sha2_password verification method is adopted by default
mysql> use mysql;
mysql> alter user 'root'@'%' identified with mysql_native_password by 'root密码';

5. Mysql changes the default data storage

$ mysqladmin -u root -p variables | grep datadir  # 查看mysql数据库存放目录
$ service mysqld stop
$ mv /var/lib/mysql /路径  # 移动数据库文件

$ vi /etc/my.cnf

# 修改datadir和socket两个字段,并添加以下:
[mysql] 
socket=/路径/mysql.sock

$ service mysqld start

Recommended learning: "mysql video tutorial

The above is the detailed content of One article summarizes Mysql database applications and common problems. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to add a primary key to an existing table in MySQL? How to add a primary key to an existing table in MySQL? Aug 12, 2025 am 04:11 AM

To add a primary key to an existing table, use the ALTERTABLE statement with the ADDPRIMARYKEY clause. 1. Ensure that the target column has no NULL value, no duplication and is defined as NOTNULL; 2. The single-column primary key syntax is ALTERTABLE table name ADDPRIMARYKEY (column name); 3. The multi-column combination primary key syntax is ALTERTABLE table name ADDPRIMARYKEY (column 1, column 2); 4. If the column allows NULL, you must first execute MODIFY to set NOTNULL; 5. Each table can only have one primary key, and the old primary key must be deleted before adding; 6. If you need to increase it yourself, you can use MODIFY to set AUTO_INCREMENT. Ensure data before operation

Explain database indexing strategies (e.g., B-Tree, Full-text) for a MySQL-backed PHP application. Explain database indexing strategies (e.g., B-Tree, Full-text) for a MySQL-backed PHP application. Aug 13, 2025 pm 02:57 PM

B-TreeindexesarebestformostPHPapplications,astheysupportequalityandrangequeries,sorting,andareidealforcolumnsusedinWHERE,JOIN,orORDERBYclauses;2.Full-Textindexesshouldbeusedfornaturallanguageorbooleansearchesontextfieldslikearticlesorproductdescripti

How to back up a database in MySQL How to back up a database in MySQL Aug 11, 2025 am 10:40 AM

Using mysqldump is the most common and effective way to back up MySQL databases. It can generate SQL scripts containing table structure and data. 1. The basic syntax is: mysqldump-u[user name]-p[database name]>backup_file.sql. After execution, enter the password to generate a backup file. 2. Back up multiple databases with --databases option: mysqldump-uroot-p--databasesdb1db2>multiple_dbs_backup.sql. 3. Back up all databases with --all-databases: mysqldump-uroot-p

How to change the GROUP_CONCAT separator in MySQL How to change the GROUP_CONCAT separator in MySQL Aug 22, 2025 am 10:58 AM

You can customize the separator by using the SEPARATOR keyword in the GROUP_CONCAT() function; 1. Use SEPARATOR to specify a custom separator, such as SEPARATOR'; 'The separator can be changed to a semicolon and plus space; 2. Common examples include using the pipe character '|', space'', line break character '\n' or custom string '->' as the separator; 3. Note that the separator must be a string literal or expression, and the result length is limited by the group_concat_max_len variable, which can be adjusted by SETSESSIONgroup_concat_max_len=10000; 4. SEPARATOR is optional

What is the difference between UNION and UNION ALL in MySQL? What is the difference between UNION and UNION ALL in MySQL? Aug 14, 2025 pm 05:25 PM

UNIONremovesduplicateswhileUNIONALLkeepsallrowsincludingduplicates;1.UNIONperformsdeduplicationbysortingandcomparingrows,returningonlyuniqueresults,whichmakesitsloweronlargedatasets;2.UNIONALLincludeseveryrowfromeachquerywithoutcheckingforduplicates,

How to lock tables in MySQL How to lock tables in MySQL Aug 15, 2025 am 04:04 AM

The table can be locked manually using LOCKTABLES. The READ lock allows multiple sessions to read but cannot be written. The WRITE lock provides exclusive read and write permissions for the current session and other sessions cannot read and write. 2. The lock is only for the current connection. Execution of STARTTRANSACTION and other commands will implicitly release the lock. After locking, it can only access the locked table; 3. Only use it in specific scenarios such as MyISAM table maintenance and data backup. InnoDB should give priority to using transaction and row-level locks such as SELECT...FORUPDATE to avoid performance problems; 4. After the operation is completed, UNLOCKTABLES must be explicitly released, otherwise resource blockage may occur.

How to select data from a table in MySQL? How to select data from a table in MySQL? Aug 19, 2025 pm 01:47 PM

To select data from MySQL table, you should use SELECT statement, 1. Use SELECTcolumn1, column2FROMtable_name to obtain the specified column, or use SELECT* to obtain all columns; 2. Use WHERE clause to filter rows, such as SELECTname, ageFROMusersWHEREage>25; 3. Use ORDERBY to sort the results, such as ORDERBYageDESC, representing descending order of age; 4. Use LIMIT to limit the number of rows, such as LIMIT5 to return the first 5 rows, or use LIMIT10OFFSET20 to implement paging; 5. Use AND, OR and parentheses to combine

How to use the IN operator in MySQL? How to use the IN operator in MySQL? Aug 12, 2025 pm 03:46 PM

TheINoperatorinMySQLchecksifavaluematchesanyinaspecifiedlist,simplifyingmultipleORconditions;itworkswithliterals,strings,dates,andsubqueries,improvesqueryreadability,performswellonindexedcolumns,supportsNOTIN(withcautionforNULLs),andcanbecombinedwith

See all articles