Before discussing how to start the MySQL server, let us consider what user the MySQL server should be run as. The server can be started manually or automatically. If you start it manually, the server starts as the user you log into Unix (Linux), that is, if you log in to Unix with paul and start the server, it runs with paul; if you use the su command to switch to root, Then start the server so that it runs as root. However, most of the time you probably don't want to start the server manually, most likely you will arrange for the MySQL server to start automatically when the system boots, as part of the standard boot process, which under Unix is performed by the system's Unix user root, And any processes running within the process run with root privileges.
You should keep two goals in mind during the MySQL server startup process:
You want the server to run as a non-root user. Generally, you want to limit the ability of any running process unless root privileges are truly required, which MySQL does not.
You want the server to always run as the same user. It is very inconvenient to use one user and run the server as a different user at other times. This results in files and directories having different attributes. The main data directory is created and may cause the server to be unable to access databases or tables, depending on which user you are running as. Running the server as the same user will help you avoid this problem.
To run the server as a normal unprivileged user, follow these steps:
Select a user to run the server. Mysqld can be run as any user. But conceptually clearer is to create a separate user for MySQL operations. You can also select a user group specifically for MySQL. This article uses mysqladm and mysqlgrp as the user name and user group name respectively.
If you have installed MySQL under your own account and do not have special administrative rights on the system, you will be able to run the server under your own user ID. In this case, replace mysqladm and mysqlgrp with your own login name and user group.
If you use an rpm file to install MySQL on RedHat Linux, the installation will automatically create an account named mysql and use this account instead of mysqladm.
If necessary, use the system's normal user creation process to create a server account. You need to use root to do it.
If the server is running, stop it.
Modify the ownership of the data directory and any subdirectories and files so that the mysqladm user owns them. For example, if the data directory is /usr/local/var, you can set the owner of mysqladm as follows (you need to run these commands as root):
#cd /usr/local/var
#chown -R mysqladm.mysqlgrp
Modify the permissions of the data directory and any subdirectories and files so that they can only be accessed by the mysqladm user. If the data directory is /usr/local/var, you can set anything owned by mysqladm:
# cd /usr/local/var
#chmod -R go- rwx
When you set the owner and mode of the data directory and its contents, pay attention to symbolic links. You need to follow them and change the ownership and mode of the files or directories they point to. This can be a bit troublesome if the directory where the connection files are located is somewhere you don't own, and you may need to be root.
After you have completed the above process, you should make sure to always start the server while logged in as mysqladm or root. In the latter, be sure to specify the --user=mysqladm option to enable the server to switch its user ID. to mysqladm (also applies to the system startup process).
The --user option was introduced in MySQL 3.22. If you have an older version, you can use the su command to tell the system to run the server under a specific user when running as root.
Method to start the server
After we determine the account used to run the server, you can choose how to arrange to start the server. You can run it manually from the command line or automatically during system boot. There are three main methods for starting the server:
Directly call mysqld.
This may be the least commonly used method, and it is recommended not to use it more, so this article will not introduce it in detail.
Call the safe_mysqld script.
safe_mysqld attempts to determine the location of the server program and data directories. The server is then called with options reflecting these values. safe_mysqld relocates the standard error device from the server to an error file in the data directory so that there is a record of it. After starting the server, safe_mysqld also monitors it and restarts it if it dies. safe_mysqld is commonly used on BSD-style Unix systems.
If you start sqfe_mysqld as root or during system boot, the error log is owned by root, which may cause a "permission denied" error when you later try to call safe_mysqld as an unprivileged user. DeleteError log and try again.
Call the mysql.server script.
This script starts the server via safe_mysqld.mysql.server, which is intended for use on System V start and stop systems that contain several files that are included in the machine entry or exit of a given The script directory used when running the level. It can use a start or stop parameter point to indicate whether you want to start or stop the server.
The safe_mysqld script is installed in the bin directory of the MySQL installation directory, or can be found in the scripts directory of the MySQL source code distribution. The mysql.server script is installed in the share/mysqld directory under the MySQL installation directory or can be found in the support_files directory of the MySQL source code distribution. If you want to use them, you need to copy them to the appropriate directory.
For BSD-style systems (FreeBSD, OpenBSD, etc.), there are usually several files in the /etc directory to initialize services during boot. These files usually have names starting with "rc", and it is possible Consisting of a file called "rc.local" (or something similar), specifically used to start locally installed services. On such a system, you might start the server by adding a line similar to the following to the rc.local file (if the safe_mysqld directory is different on your system, just modify it):
if [ -x /usr/local/bin/safe_mysqld ]; then
/usr/local/bin/safe_mysqld &
fi
For System V style systems, you can pass mysql .server is placed in the appropriate startup directory under /etc to install it. If you're running Linux and installing MySQL from an RPM file, this is already done for you, otherwise install the script in the main startup directory and place the connection to it in the appropriate runlevel directory. You can also make the script only startable by root.
The directory layout of startup files varies from system to system, so you need to check to see how your system organizes them. For example, on Linux PPC, the directories are /etc/rc.d and /etc/rc.d/rc3.d, so you can install the script like this:
#cp mysql.server /etc/rc.d /init.d
#cd /etc/init.d
#chmod 500 mysql.server
#cd /etc/rc.d/rc3.d
#ln -s ../init .d/mysql.server S99mysql
On solaris, the main script directory is /etc/init.d, and the run-level directory is /etc/rd2.d, so the command looks like this:
#cp mysql.server /etc/rc.d/init.d
#cd /etc/init.d
#chmod 500 mysql.server
#cd /etc/rc2.d
# ln -s ../init.d/mysql.server S99mysql
When the system starts, the S99mysql script will automatically be called with a start parameter. If you have the chkconfig command (available on Linux), you can use it to help install the mysql.server script instead of manually running the above command as above.
Specify startup options
If you want to specify additional startup options when the server starts, you have two methods. You can modify the startup script you use (safe_mysqld or mysql.server) and specify options directly on the line calling the server, or specify options in an options file. It is recommended that you specify options if possible in a global options file, which is usually located at /etc/my.cnf (Unix) or c:my.cnf (Windows).
Certain types of information cannot be specified with server options. For these you may need to modify safe_mysqld. For example, if your server cannot correctly select the local time zone and returns time values in GMT, you can set the TZ environment variable to give it an indication. If you start the server with safe_mysqld or mysql.server, you can add a time zone setting to safe_mysqld. Find the line that starts the server and add the following command before the line:
TZ=US/Central
export TZ
The syntax of the above command is Solaris, and the syntax may be different for other systems , please consult the relevant manual. If you do modify your startup script, keep in mind that the next time you install MySQL (such as upgrading to a new version), your changes will be lost unless you first copy the startup script elsewhere. After installing the new version, compare the old and new scripts to see what changes you need to rebuild.
Checking your tables at startup
In addition to arranging for your server to start at system boot, you may want to install the myisamchk and isamchk scripts to check your tables before the server starts. You may be restarting after a crash. It's possible that the table has been corrupted. Checking it before starting is a good way to find the problem.
The above is the detailed content of Teach you how to start and stop one of the Mysql services. For more information, please follow other related articles on the PHP Chinese website!

How to effectively monitor MySQL performance? Use tools such as mysqladmin, SHOWGLOBALSTATUS, PerconaMonitoring and Management (PMM), and MySQL EnterpriseMonitor. 1. Use mysqladmin to view the number of connections. 2. Use SHOWGLOBALSTATUS to view the query number. 3.PMM provides detailed performance data and graphical interface. 4.MySQLEnterpriseMonitor provides rich monitoring functions and alarm mechanisms.

The difference between MySQL and SQLServer is: 1) MySQL is open source and suitable for web and embedded systems, 2) SQLServer is a commercial product of Microsoft and is suitable for enterprise-level applications. There are significant differences between the two in storage engine, performance optimization and application scenarios. When choosing, you need to consider project size and future scalability.

In enterprise-level application scenarios that require high availability, advanced security and good integration, SQLServer should be chosen instead of MySQL. 1) SQLServer provides enterprise-level features such as high availability and advanced security. 2) It is closely integrated with Microsoft ecosystems such as VisualStudio and PowerBI. 3) SQLServer performs excellent in performance optimization and supports memory-optimized tables and column storage indexes.

MySQLmanagescharactersetsandcollationsbyusingUTF-8asthedefault,allowingconfigurationatdatabase,table,andcolumnlevels,andrequiringcarefulalignmenttoavoidmismatches.1)Setdefaultcharactersetandcollationforadatabase.2)Configurecharactersetandcollationfor

A MySQL trigger is an automatically executed stored procedure associated with a table that is used to perform a series of operations when a specific data operation is performed. 1) Trigger definition and function: used for data verification, logging, etc. 2) Working principle: It is divided into BEFORE and AFTER, and supports row-level triggering. 3) Example of use: Can be used to record salary changes or update inventory. 4) Debugging skills: Use SHOWTRIGGERS and SHOWCREATETRIGGER commands. 5) Performance optimization: Avoid complex operations, use indexes, and manage transactions.

The steps to create and manage user accounts in MySQL are as follows: 1. Create a user: Use CREATEUSER'newuser'@'localhost'IDENTIFIEDBY'password'; 2. Assign permissions: Use GRANTSELECT, INSERT, UPDATEONmydatabase.TO'newuser'@'localhost'; 3. Fix permission error: Use REVOKEALLPRIVILEGESONmydatabase.FROM'newuser'@'localhost'; then reassign permissions; 4. Optimization permissions: Use SHOWGRA

MySQL is suitable for rapid development and small and medium-sized applications, while Oracle is suitable for large enterprises and high availability needs. 1) MySQL is open source and easy to use, suitable for web applications and small and medium-sized enterprises. 2) Oracle is powerful and suitable for large enterprises and government agencies. 3) MySQL supports a variety of storage engines, and Oracle provides rich enterprise-level functions.

The disadvantages of MySQL compared to other relational databases include: 1. Performance issues: You may encounter bottlenecks when processing large-scale data, and PostgreSQL performs better in complex queries and big data processing. 2. Scalability: The horizontal scaling ability is not as good as Google Spanner and Amazon Aurora. 3. Functional limitations: Not as good as PostgreSQL and Oracle in advanced functions, some functions require more custom code and maintenance.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

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

Hot Article

Hot Tools

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.

Dreamweaver Mac version
Visual web development tools

SublimeText3 English version
Recommended: Win version, supports code prompts!

MantisBT
Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

WebStorm Mac version
Useful JavaScript development tools