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