CentOS (13) for Linux -- installation and configuration of Mysql database under CentOS6.4, centos -- centos6.4
To develop j2ee on Linux, you must first build a j2ee development environment, including jdk, tomcat, and eclipse installation (this article has explained in detail CentOS (7) of Linux learning-building a j2ee environment under CentOS ), if you want to develop a web project, you can install a myeclipse program on the Linux system. The installation method is the same as that for installing eclipse, with jdk, tomcat, and eclipse, we can develop our programs. However, if you want to create a project, even small projects cannot be separated from data storage !!! That's right. We have not installed the most important software, that is, the database !!! If we do not have a database, it is just a fantasy to do a project. So, for database installation, I wrote this article specifically for installing the mysql database ......
I. mysql Introduction
Speaking of databases, we mostly think of relational databases, such as mysql, oracle, and sqlserver. These database software is very convenient to install on windows. If you want to install a database on Linux, we have to recommend the mysql database first, and the first version of the Mysql database is released on the Linux system.
MySQL is a relational database management system developed by MySQL AB in Sweden and currently belongs to Oracle. MySQL is an associated database management system that stores data in different tables rather than in a large warehouse. This increases the speed and flexibility. The SQL language of MySQL is the most commonly used standard language for accessing databases. MySQL adopts the dual Authorization Policy (this term "Authorization Policy"). It is divided into community edition and commercial edition. because of its small size, fast speed, and low total cost of ownership, especially open source code, MySQL is generally used as the website database for the development of small and medium-sized websites. Due to its superior performance, the Community edition works with PHP and Apache to form a good development environment.
Install the mysql database on Linux. You can download the rpm package of the mysql database from its official website.
Here I use yum to install the mysql database. Through this method, we can install mysql-related services and jar packages, this saves a lot of unnecessary trouble !!!
Ii. Uninstall the original mysql
Because mysql databases are too popular on Linux, the mainstream Linux system versions currently downloaded are basically integrated with mysql databases, run the following command to check whether the mysql database has been installed on the operating system:
[Root @ xiaoluo ~] # Rpm-qa | grep mysql // This command will check whether the mysql database has been installed on the Operating System
If yes, run the rpm-e command or the rpm-e -- nodeps command to uninstall it.
[Root @ xiaoluo ~] # Rpm-e mysql // normal deletion mode [root @ xiaoluo ~] # Rpm-e -- nodeps mysql // strong deletion mode. If the above command is used to delete other dependent files, you can use this command to forcibly delete them.
After deletion, run the rpm-qa | grep mysql command to check whether mysql has been uninstalled successfully !!
Iii. Install mysql through yum
I am using yum to install mysql databases. First, we can enter the yum list | grep mysql command to view the downloadable mysql database version on yum:
[root@xiaoluo ~]# yum list | grep mysql
You can get the downloadable version of the mysql database on the yum server:
Then, run the yum install-y mysql-server mysql-devel command to install mysql-server mysql-devel (Note: When installing mysql, We have installed the mysql database instead of the mysql client. We also need to install the mysql-server.)
[root@xiaoluo ~]# yum install -y mysql-server mysql mysql-deve
After waiting for some time, yum will help us select the software required to install mysql database and other ancillary software.
We found that installing the mysql database using yum saves a lot of unnecessary trouble. When the following results appear, it indicates that the mysql database has been successfully installed.
In this case, run the following command to check the version of the newly installed mysql-server:
[root@xiaoluo ~]# rpm -qi mysql-server
The mysql-server we installed is not the latest version. If you want to try the latest version, download the rpm package on the mysql official website, so far, our mysql database has been installed.
Iv. mysql database initialization and related configuration
After installing the mysql database, we will find an additional mysqld service. This is our database service. We can start our mysql service by entering the service mysqld start command.
Note:: If we start the mysql service for the first time, the mysql server will first perform Initialization Configuration, for example:
[Root @ xiaoluo ~] #Service mysqld startInitialize The MySQL database: WARNING: The host 'xiaoluo 'cocould not be looked up with resolveip. this probably means that your libc libraries are not 100% compatiblewith this binary MySQL version. the MySQL daemon, mysqld, shocould worknormally with the exception that host name resolving will not work. this means that you should use IP addresses instead of hostnameswhen specifying MySQL privileges! Installing MySQL system tables... OKFilling help tables... OKTo start mysqld at boot time you have to copysupport-files/mysql. server to the right place for your systemPLEASE remember to set a password for the MySQL root USER! To do so, 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 will also give you the option of removing the testdatabases and anonymous user created by default. this isstronugly recommended for production servers. see the ma Nual 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 any problems with the/usr/bin/mysqlbug script! [OK] Starting mysqld: [OK]
At this time, we will see that a lot of information will be prompted after the mysql server is started for the first time. The purpose is to initialize the mysql database. When we restart the mysql service again, so much information will not be prompted, such:
[Root @ xiaoluo ~] #Service mysqld restartStop mysqld: [OK] Starting mysqld: [OK]
When using the mysql database, we have to start the mysqld service first. We can run the chkconfig -- list | grep mysqld command to check whether the mysql service is automatically started upon startup, for example:
[Root @ xiaoluo ~] # Chkconfig -- list | grep mysqldmysqld 0: Close 1: Close 2: Close 3: Close 4: Close 5: Close 6: Close
We found that the mysqld service is not automatically started when it is started. Of course, you can use the chkconfig mysqld on command to set it to boot, so that you do not need to start it manually every time.
[Root @ xiaoluo ~] # Chkconfig mysqld on [root @ xiaoluo ~] # Chkconfig -- list | grep mysqlmysqld 0: Disable 1: Disable 2: Enable 3: Enable 4: Enable 5: Enable 6: Disable
After the mysql database is installed, there will be only one root administrator account, but the root account has not set a password for it. When the mysql service is started for the first time, some database initialization will be performed, in a large string of output information, we can see such a line of information:
/Usr/bin/mysqladmin-u root password 'new-password' // set a password for the 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)
[Root @ xiaoluo ~] #Mysqladmin-u root password'Root' // Use this command to set the password of the root account to root.
Now we can log on to our mysql database using the mysql-u root-p command.
V. Main configuration files of the mysql database
1./Etc/my. cnfThis is the main configuration file of mysql.
We can check some information about this file.
[root@xiaoluo etc]# ls my.cnf my.cnf
[root@xiaoluo 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./Var/lib/mysqlDatabase file storage location of the mysql database
The database files of our mysql database are usually stored in the/ver/lib/mysql directory.
[Root @ xiaoluo ~] # Cd/var/lib/mysql/[root @ xiaoluo mysql] # ls-l total usage 20488-rw-rw ----. 1 mysql 10485760 April 6 22:01 ibdata1-rw-rw ----. 1 mysql 5242880 April 6 22:01 ib_logfile0-rw-rw ----. 1 mysql 5242880 April 6 21:59 ib_logfile1drwx ------. 2 mysql 4096 21:59 mysql // these two are the default two database files srwxrwxrwx during mysql database installation. 1 mysql 0 April 6 22:01 mysql. sockdrwx ------. 2 mysql 4096 April 6 21:59 test // these two are the default two database files during mysql Database Installation
We can create a database to verify the storage location of the database file.
Create a database of our own: mysql> create database xiaoluo; Query OK, 1 row affected (0.00 sec) [root @ xiaoluo mysql] # ls-l total usage 202.16-rw-rw ----. 1 mysql 10485760 April 6 22:01 ibdata1-rw-rw ----. 1 mysql 5242880 April 6 22:01 ib_logfile0-rw-rw ----. 1 mysql 5242880 April 6 21:59 ib_logfile1drwx ------. 2 mysql 4096 April 6 21:59 mysqlsrwxrwxrwx. 1 mysql 0 April 6 22:01 mysql. sockdrwx ------. 2 mysql 4096 April 6 21:59 testdrwx ------. 2 mysql 4096 22:15 xiaoluo // This is the xiaoluo database we just created [root @ xiaoluo mysql] # cd xiaoluo/[root @ xiaoluo] # lsdb. opt
3./Var/logLog output location of the mysql database
Some log output locations of our mysql database are stored in the/var/log directory.
[root@xiaoluo xiaoluo]# cd [root@xiaoluo ~]# cd /var/log[root@xiaoluo log]# lsamanda cron maillog-20130331 spice-vdagent.loganaconda.ifcfg.log cron-20130331 mcelog spooleranaconda.log cups messages spooler-20130331anaconda.program.log dirsrv messages-20130331 sssdanaconda.storage.log dmesg mysqld.log tallyloganaconda.syslog dmesg.old ntpstats tomcat6anaconda.xlog dracut.log piranha wpa_supplicant.loganaconda.yum.log gdm pm-powersave.log wtmpaudit httpd ppp Xorg.0.logboot.log ibacm.log prelink Xorg.0.log.oldbtmp lastlog sa Xorg.1.logbtmp-20130401 libvirt samba Xorg.2.logcluster luci secure Xorg.9.logConsoleKit maillog secure-20130331 yum.log
The mysqld. log file is the log information generated when we operate on the mysql database. By viewing this log file, we can obtain a lot of information.
Because our mysql database is accessible through the network, it is not a standalone database, and the protocol used is the TCP/IP protocol. We all know that the port number bound to the mysql database is 3306, so we can run the netstat-anp command to check whether the Linux system is listening for the port number 3306:
The result is as shown above. The port number 3306 monitored by Linux is our mysql database !!!!
When mysql is connected to linux, the system prompts "1130 is not allowed to connect to this MySql server". How can this problem be solved?
Error Description: the ip address is not authorized to connect to the server.
If you want the root user name to use the root password to connect to the MySQL server from any host.
Run the command: mysql> grant all privileges on *. * TO 'root' @ '%' identified by 'root' with grant option;
If you want to allow the user root to connect to the mysql server from the host whose ip address is 192.168.1.3, and use root as the password
Run the command: mysql> grant all privileges on *. * TO 'root' @ '192. 168.1.3 'identified BY 'root' with grant option;
The above command creates a super account that can log on from any machine as root, and the password is root. In this way, you can use a convenient graphic tool (navicat for mysql) to log on and operate, including modifying the root password.
Replace the username, password, and IP address with your own one ~~