Reprint: http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/07/3003278.html
First, MySQL Introduction
When it comes to databases, we mostly think of relational databases, such as MySQL, Oracle, SQL Server, and so on, which are very easy to install on Windows, and if you want to install a database on Linux, I have to recommend MySQL database first. And the first version of the MySQL database is distributed on Linux systems.
MySQL is a relational database management system developed by the Swedish MySQL AB company, currently owned by Oracle Corporation. MySQL is an associated database management system that keeps data in separate tables rather than putting all of the data in a large warehouse, which increases speed and increases flexibility. MySQL's SQL language is the most commonly used standardized language for accessing databases. MySQL software uses a dual licensing policy (this term "authorization policy"), it is divided into community and commercial version, because of its small size, speed, low total cost of ownership, especially the open source of this feature, the general small and medium-sized web site development has chosen MySQL as the site database. Thanks to the performance of its community edition, PHP and Apache make a good development environment.
To install MySQL database on Linux, we can download the MySQL database rpm package on its official website, Http://dev.mysql.com/downloads/mysql/5.6.html#downloads, Everyone can download the corresponding database files according to their operating system, the latest version is 5.6.10.
Here I am the installation of MySQL database through Yum, this way to install, can be related to MySQL some services, jar packages are installed to us, so save a lot of unnecessary trouble!!!
Second, uninstall the original MySQL
Because MySQL database is very popular on Linux, so the mainstream Linux version of the current download basically integrates the MySQL database inside, we can use the following command to see if the MySQL database is installed on our operating system
[Email protected] ~]# Rpm-qa | grep mysql//This command will check if the MySQL database is already installed on the operating system
If there is, we can unload it by RPM-E command or rpm-e--nodeps command.
[[email protected] ~]# rpm-e mysql//normal delete mode [[email protected] ~]# rpm-e--nodeps MySQL//brute force Delete mode, if you use the above command to delete, prompted to have dependent on the other File, the command can be used to forcefully delete the
After the deletion we can pass Rpm-qa | grep mysql command to see if MySQL has been uninstalled successfully!!
Third, the installation of MySQL through Yum
I am using yum to perform MySQL database installation, first we can enter Yum List | grep mysql command to view the downloadable version of the MySQL database available on Yum:
[email protected] ~]# Yum List | grep MySQL
You can get the downloadable version of the MySQL database on the Yum server:
Then we can install the MySQL mysql-server mysql-devel by entering the Yum install-y mysql-server mysql mysql-devel command ( Note: When we installed MySQL, we did not install the MySQL client, which is equivalent to installing the MySQL database, we also need to install the Mysql-server server .
[email protected] ~]# yum install-y mysql-server MySQL Mysql-deve
After waiting for some time, Yum will help us choose the software needed to install the MySQL database and some other ancillary software.
We found that the installation of the MySQL database through the Yum method eliminates a lot of unnecessary hassle, and when the following results occur, the MySQL database installation is successful.
At this point we can view the version of the mysql-server that we just installed with the following command
[Email protected] ~]# Rpm-qi mysql-server
We installed the Mysql-server is not the latest version, if you want to try the latest version, then go to the MySQL website to download rpm package installation, so that our MySQL database has been installed.
Iv. initialization of MySQL database and related configuration
After we install the MySQL database, we will find a mysqld service, this is our database service, we can start our MySQL service by entering the service mysqld Start command.
Note : If we are starting the MySQL service for the first time, the MySQL server will first initialize the configuration, such as:
[Email protected] ~]#Service mysqld StartInitialize MySQL database: warning:the host ' Xiaoluo ' could not being looked up with RESOLVEIP. This probably means that your libc libraries is not the Compatiblewith this binary MySQL version. The MySQL daemon, mysqld, should worknormally with the exception that host name resolving won't work. This means the should use IP addresses instead of Hostnameswhen specifying MySQL privileges! Installing MySQL system tables ... Okfilling Help Tables ... OKto start mysqld at boot time has to copysupport-files/mysql.server to the right place for your systemplease Remembe R to SET A PASSWORD for the MySQL root USER! To does, start the server, then issue the following commands:/usr/bin/mysqladmin-u root password ' new-password '/usr/bin/ Mysqladmin-u root-h xiaoluo password ' new-password ' Alternatively you can Run:/usr/bin/mysql_secure_installationwhich Would also give you the option of removing the testdatabases and anonymous user created by default. This isstrongly recommended for production servers.See the Manual for more instructions. You can start the MySQL daemon with:cd/usr; /usr/bin/mysqld_safe &you can test the MySQL daemon with mysql-test-run.plcd/usr/mysql-test; Perl mysql-test-run.plplease Report No problems with The/usr/bin/mysqlbug script! [OK] starting mysqld: [OK]
At this point we will see that the first time you start the MySQL server will prompt a lot of information, the purpose is to initialize the MySQL database, when we restart the MySQL service again, will not prompt so much information, such as:
Service mysqld Restart stop mysqld: [OK] starting mysqld: [OK]
When we use MySQL database, we have to start the Mysqld service first, we can through Chkconfig--list | grep mysqld command to see if the MySQL service is booting automatically, such as:
[Email protected] ~]# Chkconfig--list | grep mysqldmysqld 0: Off 1: Off 2: Off 3: Off 4: Off 5: Off 6: Off
We found that the MYSQLD service did not start automatically, and of course we can set it to boot up with the Chkconfig mysqld on command, so you don't have to start it manually every time.
[[email protected] ~]# chkconfig mysqld on[[email protected] ~]# chkconfig--list | grep mysqlmysqld 0: Off 1: Off 2: Enable 3: Enable 4: Enable 5: enable 6: Off
MySQL database after installation will only have a root administrator account, but at this time the root account has not set a password for it, the first time the MySQL service started, the database will be some initialization work, in the output of a large string of information, we see a line of information:
/usr/bin/mysqladmin-u root password ' new-password '//Set password for root account
So we can use this command to set the password for our root account ( Note : This root account is the root account of MySQL, not the root account of Linux)
mysqladmin-u root Password ' Root '//Use this command to set the root account password to root
At this point we can log in to our MySQL database via the mysql-u root-p command.
V. Major configuration files for MySQL database
1./etc/my.cnf This is the main configuration file for MySQL
We can take a look at some information about this file
[email protected] etc]# ls my.cnf my.cnf
[email protected] etc]# cat my.cnf [mysqld]datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sockuser=mysql# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0[mysqld_safe]log-error=/var/ Log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid
2. Storage location of database files for/var/lib/mysql MySQL Database
The database files for our MySQL database are usually stored in the/ver/lib/mysql directory.
[[email protected] ~]# cd/var/lib/mysql/[[email protected] mysql]# ls-l total usage 20488-rw-rw----. 1 mysql mysql 10485760 April 6 22:01 ibdata1-rw-rw----. 1 mysql mysql 5242880 April 6 22:01 ib_logfile0-rw-rw----. 1 MySQL MySQL 5242880 April 6 21:59 ib_logfile1drwx------. 2 mysql mysql 4096 April 6 21:59 mysql//These two are MySQL data The default two database files srwxrwxrwx when the library is installed. 1 MySQL mysql 0 April 6 22:01 mysql.sockdrwx------. 2 mysql mysql 4096 April 6 21:59 Test//These two are MySQL database installed by default The two database files
We can create a database ourselves to verify where the database files are stored
Create one of our own databases:mysql> CREATE database Xiaoluo; Query OK, 1 row Affected (0.00 sec) [[email protected] mysql]# ls-l total usage 20492-rw-rw----. 1 mysql mysql 10485760 April 6 22:01 ibdata1-rw-rw----. 1 mysql mysql 5242880 April 6 22:01 ib_logfile0-rw-rw----. 1 MySQL MySQL 5242880 April 6 21:59 ib_logfile1drwx------. 2 mysql mysql 4096 April 6 21:59 mysqlsrwxrwxrwx. 1 my SQL MySQL 0 April 6 22:01 mysql.sockdrwx------. 2 mysql mysql 4096 April 6 21:59 testdrwx------. 2 MySQL mysql< c11/>4096 April 6 22:15 Xiaoluo//This is the Xiaoluo database we just created [[email protected] mysql]# CD Xiaoluo/[[email protected] Xiaol uo]# lsdb.opt
3./var/log MySQL database log output storage location
Some of our MySQL database's log output is stored in the/var/log directory
[[Email protected] xiaoluo]# CD [[email protected] ~]# cd/var/log[[email protected] log]# Lsamanda cron maillog-20130331 spice-vdagent.loganaconda.ifcfg.log cron-20130331 Mcelog spooleranaconda.log Cups messages Spooler-20130331anaconda.program.log dirsrv messages-20130331 Sssdanaco Nda.storage.log DMESGMysqld.logTallyloganaconda.syslog dmesg.old ntpstats tomcat6anaconda.xlog dracut.log Piranha Wpa_supplicant.loganaconda.yum.log GDM pm-powersave.log wtmpaudit httpd pp P xorg.0.logboot.log ibacm.log prelink xorg.0.log.oldbtmp las TLog sa xorg.1.logbtmp-20130401 libvirt Samba xorg.2.logcluster Luci Secure Xorg.9.logconsolekit Maillog secure-20130331 Yum.log
Which mysqld.log this file is the log information we have to store our operations with the MySQL database, and we can get a lot of information by looking at the log file.
Because our MySQL database is accessible over the network, not a stand-alone database, where the protocol used is the TCP/IP protocol, we all know that the MySQL database binding port number is 3306, so we can see through the NETSTAT-ANP command, is the Linux system listening on the 3306 port number:
As shown above, the Linux system listens on the 3306 port number is our MySQL database!!!!
Remote connection to MySQL
1) First log in to MySQL with the root account
2) Create a remote login user and authorize
Grant all privileges the test_db.* to [email protected]' 192.168.1.101 ' identified by ' 123456 ';
The above statement indicates that all permissions to the TEST_DB database are granted to root, allowing the root user to remotely log on to the 192.168.1.101 IP and set the root user's password to 123456.
All parameters are analyzed below:
All privileges means giving all permissions to the specified user, which can also be replaced by assigning a specific permission, such as Select,insert,update,delete,create,drop, to be separated by a "," half-width comma between specific permissions.
Test_db.* means that the above permissions are for which table, test_db refers to the database, followed by the * for all tables, it can be inferred that: for all of the database is authorized as "*. *" For all tables, the entire table for a database is authorized as "database name. *", A table for a database is authorized as the database name. Table name.
Root indicates which user you want to authorize, and the user can be either an existing user or a non-existent user.
192.168.1.101 represents the IP address that allows remote connections, or "%" if you want to limit the IP of the link.
123456 is the user's password.
3) After executing the above statement, execute the following statement before it can take effect immediately.
> Flush Privileges;
Installing MySQL under Linux (Centos)