1. 程式人生 > >centos6.9下安裝mysql5.5.35

centos6.9下安裝mysql5.5.35

1、將安裝包MySQL-server-5.5.35-1.linux2.6.x86_64通過ssh工具上傳到虛擬機器中。

2、使用命令rpm -ivh MySQL-server-5.5.35-1.linux2.6.x86_64.rpm安裝

過程中出現問題1:

 file /usr/share/mysql/binary-configure from install of MySQL-server-5.5.35-1.linux2.6.x86_64 conflicts with file from package MySQL-server-5.5.59-1.el7.x86_64

解決方法1:

 yum -y remove MySQL-server-5.5.59-1.el7.x86_64

重新執行 rpm -ivh MySQL-server-5.5.35-1.linux2.6.x86_64.rpm

過程中出現問題2:

Starting MySQL.................................................................................................
D file (/var/lib/mysql/localhost.localdomain.pid).         [失敗]

解決方法2:

使用命令vi /var/lib/mysql/localhost.localdomain.err,發現如下錯誤

InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process

可能是ibddata已經有人讀取了,無法取得其許可權,不能再次啟動,通過命令ps aux|grep mysq* 檢視當前執行mysql程序

root      29395  0.0  4.3 422424 43260 ?        Sl   Sep27   0:15 mysqld --user=root
root      53027  0.0  0.0 103344   860 pts/2    S+   09:47   0:00 grep mysql

使用命令kill 29395,殺掉程序

3、使用命令service mysql restart 重新啟動mysql,啟動成功

4、使用命令show variables like 'character%',檢視並修改資料庫編碼方式

 

mysql> show  variables like 'character%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

需要在my.cnf中修改mysql資料庫編碼方式

過程中出現問題3:

/etc/下沒有my.cnf

解決方法3:

cp /usr/share/mysql/my-medium.cnf  /etc/my.cnf

vi /etc/my.cnf

在[client]下新增default_character_set=utf8,

在[mysqld]下新增collation_server = utf8_general_ci
character_set_server = utf8

重新啟動mysql,service mysql restart

mysql> show variables like 'character%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

5、修改mysql資料庫root使用者密碼

mysql> use mysql;
Database changed
mysql> update user set password=password('123456') where user='root';
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4  Changed: 4  Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

mysql> exit

6、對遠端訪問授權

 grant all privileges on  *.*  to [email protected]'%'  identifies  by 'xxxxxx';

flush privileges;

其中xxxxx表示root使用者的密碼

7、匯入sql檔案

mysql> create database platformhlj;

mysql> source /usr/local/platformhlj.sql;

過程中出現問題4:

[Err] 1418 - This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)

解決方法4:

 vi /etc/my.cnf

在my.cnf中新增log_bin_trust_function_creators=1

 重啟mysql,service mysql restart

mysql> show variables like 'log_bin_trust_function_creators';
+---------------------------------+-------+
| Variable_name                   | Value |
+---------------------------------+-------+
| log_bin_trust_function_creators | ON    |
+---------------------------------+-------+
1 row in set (0.00 sec)

mysql> source /usr/local/platformhlj.sql;

匯入成功;

8、將mysql設定為開機自啟動(如何在定時器中設定定時檢測,這一步可以省略)

將服務檔案拷貝到init.d下,命名為mysqld

[[email protected] etc]# cp /usr/share/mysql/mysql.server  /etc/init.d/mysqld

賦予可執行許可權

[[email protected] etc]# chmod +x /etc/init.d/mysqld

新增服務

[[email protected] etc]# chkconfig --add mysqld

顯示服務列表

[[email protected] etc]# chkconfig --list

mysqld          0:關閉  1:關閉  2:啟用  3:啟用  4:啟用  5:啟用  6:關閉

重啟電腦,檢視mysql服務

[[email protected] etc]# reboot

[[email protected] ~]# netstat -apn|grep 3306
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      2182/mysqld

9、在定時器中設定定時檢測mysql

在定時器中新增定時執行的指令碼crontab -e

*/5 * * * * /usr/local/crondmysql.sh

crondmysql.sh指令碼的內容如下所示(網上搜索內容,不是自己寫的):

#!/bin/bash
pgrep -x mysqld &> /dev/null
if [ $? -ne 0 ]
then
echo "At time: `date` :MySQL is stop .">> /usr/local/mysqlstatus.txt
/etc/init.d/mysqld start
else
echo “MySQL server is running .”
fi