您的位置:首页 > 运维架构 > Linux

RPM方式安装MySQL5.7 (CentOS 6.7)

2017-09-04 17:43 591 查看
RPM方式安装MySQL5.7 (CentOS 6.7)a. 检查MySQL及相关RPM包,是否安装,如果有安装,则移除(rpm –e 名称)
1
[root@localhost
~]
#
rpm -qa | grep -i mysql
2
mysql-libs-5.1.66-2.el6_3.x86_64
3
...
4
[root@localhost
~]
#rpm
-e --nodeps mysql-libs*  //*号指代实际包名, 请实际情况输入完整包名
5
[root@localhost
~]
#rpm
-e mysql-server*
6
#如果有早期版本mysql, 则卸载相关组件
7
[root@localhost
~]
#rpm
-e mysql-client*
检查并删除老版本mysql的开发头文件和库命令:rm -fr /usr/lib/mysqlrm -fr /usr/include/mysql注意:卸载后/var/lib/mysql中的数据及/etc/my.cnf不会删除,如果确定没用后就手工删除rm -f /etc/my.cnfrm -fr /var/lib/mysqlrm -fr /usr/share/mysqlb. 下载Linux对应的RPM包然后解压缩,如:CentOS 6.7_64对应的RPM包(mysql-5.7.10-1.el6.x86_64.rpm-bundle.tar),如下:
1
[root@localhost
rpm]
#
cd /usr
2
[root@localhost
rpm]
#
tar -xvf
MySQL-5.7.26-1.el6.x86_64.rpm-bundle.tar
c. 安装MySQL (安装包步骤请自己多多尝试)
1
[root@localhost
rpm]
#
rpm -ivh MySQL-server-5.7.15-1.el6.x86_64.rpm
2
[root@localhost
rpm]
#
rpm -ivh MySQL-devel-5.7.15-1.el6.x86_64.rpm
3
[root@localhost
rpm]
#
rpm -ivh MySQL-client-5.7.15-1.el6.x86_64.rpm
4
#修改配置文件位置
5
[root@localhost
rpm]
#
cp /usr/share/mysql/my-default.cnf /etc/my.cnf
如果需要更改默认的data文件夹, 请提前更改my.cnf中datadir目录,socket和pid-file建议还是使用默认的目录/var/lib/mysql(注意: 如果没有经验请完全按照默认的配置, 无需对my.cnf做任何更改, 或者按照本文最后的my.cnf配置)d. 初始化MySQL及设置密码
1
[root@localhost
rpm]
#
/usr/sbin/mysqld --user=mysql --initialize //无密码/usr/sbin/mysqld --initialize
!!!运行以后查看提示密码, 后续很难查找如果有修改默认data存放地址, 一定要做修改以下设置, or as default1.1. 关闭selinux或者设置新数据文件权限, 同时尝试设置权限755设置: setenforce 0查看: getenforce1.2 创建data文件存地址, 并修改用户和组为mysqlchown -R mysql:mysql /home/mysqldatachcon -Rt mysqld_db_t /home/mysqldata1.3 修改默认地址/etc/rc.d/init.d/mysqld (如果启动失败, 可以尝试延后当前步骤)datadir=/home/mysqldata
2
[root@localhost
rpm]
#
service mysqld start
3
[root@localhost
~]
#
mysql -u root -pEnter Password:
 qKTaFZnl(如果提示socket位置找不到请使用命令 mysql -u root -p -S /home/mysqldata/mysql.sock,请去更改my.cnf >[client] ->socket)
4
mysql>
SET PASSWORD = PASSWORD(
'Aa12345'
);
#设置密码为Aa12345
5
mysql>
exit
6
[root@localhost
~]
#
mysql -u root -p
Enter Password: Aa12345
e. 允许远程登陆
01
mysql>
use mysql;
13
mysql>
update user
set
host=
'%'
where
user=
'root'
and
host=
'localhost'
;
14
mysql>
flush privileges;
15
mysql>
exit
f. 设置开机自启动
1
2
[root@localhost
~]
#chkconfig
--add mysqld
[root@localhost
~]
#
chkconfig mysqld on

3
[root@localhost
~]
#
chkconfig --list | grep mysql
mysql
0:off   1:off   2:on    3:on    4:on    5:on    6:off
g. MySQL的默认安装位置
1
/var/lib/mysql/
#数据库目录
2
/usr/share/mysql
#配置文件目录
3
/usr/bin
#相关命令目录
4
/etc/init.d/mysql
#启动脚本
FAQ:1. 端口号3306被占用, 更改端口号, 或者查看当前端口被哪个进程占用, 然后kill#netstat -anp | grep "3306"tcp 0 0 :::3306 :::* LISTEN 4280/mysqld#kill 42802. 执行mysql -u root -p输入密码后显示错误Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'2.1 请使用临时命令 mysql -u root -p -S /home/mysqldata/mysql.sock\2.2 指定my.cnf >[client] ->socket 路径3. 修改默认地址/etc/rc.d/init.d/mysqlddatadir=/home/mysqldata4. 提示权限问题, 关闭selinux或者设置新数据文件权限chcon -Rt mysqld_db_t /home/mysqldata5. 最近新装好的mysql在进入mysql工具时,总是有错误提示:# mysql -u root -pEnter password:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)或者# mysql -u root -p password 'newpassword'Enter password:mysqladmin: connect to server at 'localhost' failederror: 'Access denied for user 'root'@'localhost' (using password: YES)'现在终于找到解决方法了。本来准备重装的,现在不必了。5.7找回密码方法操作很简单,如下:# /etc/init.d/mysql stop# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &# mysql -u root mysqlupdate user set authentication_string=password('Aa12345') where user='root'; //5.7专用, 把空的用户密码都修改成非空的密码就行了。mysql>FLUSH PRIVILEGES;mysql>quit # /etc/init.d/mysqld restart# mysql -u root -pEnter password: <输入新设的密码newpassword>修改字符集和数据存储路径配置/etc/my.cnf文件,修改数据存放路径、mysql.sock路径以及默认编码utf-8.#查看字符集show variables like '%collation%';show variables like '%char%';SHOW VARIABLES LIKE '%character%'#查看默引擎show engines#查看默认包大小show VARIABLES like '%max_allowed_packet%';#查看log文件地址ls -l `pgrep mysqld | sed 's@.*@/proc/&/fd/@'` | grep log#查看插件地址show variables like 'plugin_dir'


# For advice on how to change settings please see# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the# *** default location during install, and will be replaced if you# *** upgrade to a newer version of MySQL.[mysqld]character-set-server=utf8default-storage-engine=INNODBmax_allowed_packet = 32Mslave_max_allowed_packet = 1024Mdatadir=/home/mysqldatasocket=/home/mysqldata/mysql.sockmax_connections = 1000#relay_log_recovery = 1 #从库开启中继日志relay-log自我修复。#skip-name-resolve #禁止mysql进行DNS查询, 可以解决网络配置变化等情况下访问缓慢的问题。#Master configuration-defaults#server-id=1 #设置服务器id,为1表示主服务器,注意:如果原来的配置文件中已经有这一行,就不用再添加了。#log_bin=mysql-bin #启动MySQ二进制日志系统,注意:如果原来的配置文件中已经有这一行,就不用再添加了。#expire_logs_days = 15 #二进制日志自动删除的天数。默认值为0,表示"没有自动删除".#rpl_semi_sync_master_enabled=1#rpl_semi_sync_master_timeout=10000#Slave configuration-defaults#server-id=2 #设置服务器id,为2表示从服务器,注意:如果原来的配置文件中已经有这一行,就不用再添加了。#expire_logs_days = 15 #二进制日志自动删除的天数。默认值为0,表示"没有自动删除".#slave_skip_errors=1032,1396,1062#rpl_semi_sync_slave_enabled=1# Remove leading # and set to the amount of RAM for the most important data# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.innodb_buffer_pool_size = 45Ginnodb_log_file_size=1024M# Remove leading # to set options mainly useful for reporting servers.# The server defaults are faster for transactions and fast SELECTs.# Adjust sizes as needed, experiment to find the optimal values.# join_buffer_size = 128M# sort_buffer_size = 2M# read_rnd_buffer_size = 2Msql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES[mysqld_safe]log-error=/var/log/mysqld.logpid-file=/home/mysqldata/mysqld.pid[client]socket=/home/mysqldata/mysql.sock

2
[root@localhost
~]
#
chkconfig --list | grep mysql
3
mysql
0:off   1:off   2:on    3:on    4:on    5:on    6:off
RPM方式安装MySQL5.7 (CentOS 6.7)a. 检查MySQL及相关RPM包,是否安装,如果有安装,则移除(rpm –e 名称)
1
[root@localhost
~]
#
rpm -qa | grep -i mysql
2
mysql-libs-5.1.66-2.el6_3.x86_64
3
...
4
[root@localhost
~]
#rpm
-e --nodeps mysql-libs*  //*号指代实际包名, 请实际情况输入完整包名
5
[root@localhost
~]
#rpm
-e mysql-server*
6
#如果有早期版本mysql, 则卸载相关组件
7
[root@localhost
~]
#rpm
-e mysql-client*
检查并删除老版本mysql的开发头文件和库命令:rm -fr /usr/lib/mysqlrm -fr /usr/include/mysql注意:卸载后/var/lib/mysql中的数据及/etc/my.cnf不会删除,如果确定没用后就手工删除rm -f /etc/my.cnfrm -fr /var/lib/mysqlrm -fr /usr/share/mysqlb. 下载Linux对应的RPM包然后解压缩,如:CentOS 6.7_64对应的RPM包(mysql-5.7.10-1.el6.x86_64.rpm-bundle.tar),如下:
1
[root@localhost
rpm]
#
cd /usr
2
[root@localhost
rpm]
#
tar -xvf
MySQL-5.7.26-1.el6.x86_64.rpm-bundle.tar
c. 安装MySQL (安装包步骤请自己多多尝试)
1
[root@localhost
rpm]
#
rpm -ivh MySQL-server-5.7.15-1.el6.x86_64.rpm
2
[root@localhost
rpm]
#
rpm -ivh MySQL-devel-5.7.15-1.el6.x86_64.rpm
3
[root@localhost
rpm]
#
rpm -ivh MySQL-client-5.7.15-1.el6.x86_64.rpm
4
#修改配置文件位置
5
[root@localhost
rpm]
#
cp /usr/share/mysql/my-default.cnf /etc/my.cnf
如果需要更改默认的data文件夹, 请提前更改my.cnf中datadir目录,socket和pid-file建议还是使用默认的目录/var/lib/mysql(注意: 如果没有经验请完全按照默认的配置, 无需对my.cnf做任何更改, 或者按照本文最后的my.cnf配置)d. 初始化MySQL及设置密码
1
[root@localhost
rpm]
#
/usr/sbin/mysqld --user=mysql --initialize //无密码/usr/sbin/mysqld --initialize
!!!运行以后查看提示密码, 后续很难查找如果有修改默认data存放地址, 一定要做修改以下设置, or as default1.1. 关闭selinux或者设置新数据文件权限, 同时尝试设置权限755设置: setenforce 0查看: getenforce1.2 创建data文件存地址, 并修改用户和组为mysqlchown -R mysql:mysql /home/mysqldatachcon -Rt mysqld_db_t /home/mysqldata1.3 修改默认地址/etc/rc.d/init.d/mysqld (如果启动失败, 可以尝试延后当前步骤)datadir=/home/mysqldata
2
[root@localhost
rpm]
#
service mysqld start
3
[root@localhost
~]
#
mysql -u root -pEnter Password:
 qKTaFZnl(如果提示socket位置找不到请使用命令 mysql -u root -p -S /home/mysqldata/mysql.sock,请去更改my.cnf >[client] ->socket)
4
mysql>
SET PASSWORD = PASSWORD(
'Aa12345'
);
#设置密码为Aa12345
5
mysql>
exit
6
[root@localhost
~]
#
mysql -u root -p
Enter Password: Aa12345
e. 允许远程登陆
01
mysql>
use mysql;
13
mysql>
update user
set
host=
'%'
where
user=
'root'
and
host=
'localhost'
;
14
mysql>
flush privileges;
15
mysql>
exit
f. 设置开机自启动
1
2
[root@localhost
~]
#chkconfig
--add mysqld
[root@localhost
~]
#
chkconfig mysqld on

3
[root@localhost
~]
#
chkconfig --list | grep mysql
mysql
0:off   1:off   2:on    3:on    4:on    5:on    6:off
g. MySQL的默认安装位置
1
/var/lib/mysql/
#数据库目录
2
/usr/share/mysql
#配置文件目录
3
/usr/bin
#相关命令目录
4
/etc/init.d/mysql
#启动脚本
FAQ:1. 端口号3306被占用, 更改端口号, 或者查看当前端口被哪个进程占用, 然后kill#netstat -anp | grep "3306"tcp 0 0 :::3306 :::* LISTEN 4280/mysqld#kill 42802. 执行mysql -u root -p输入密码后显示错误Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'2.1 请使用临时命令 mysql -u root -p -S /home/mysqldata/mysql.sock\2.2 指定my.cnf >[client] ->socket 路径3. 修改默认地址/etc/rc.d/init.d/mysqlddatadir=/home/mysqldata4. 提示权限问题, 关闭selinux或者设置新数据文件权限chcon -Rt mysqld_db_t /home/mysqldata5. 最近新装好的mysql在进入mysql工具时,总是有错误提示:# mysql -u root -pEnter password:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)或者# mysql -u root -p password 'newpassword'Enter password:mysqladmin: connect to server at 'localhost' failederror: 'Access denied for user 'root'@'localhost' (using password: YES)'现在终于找到解决方法了。本来准备重装的,现在不必了。方法操作很简单,如下:# /etc/init.d/mysql stop# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &# mysql -u root mysqlmysql>UPDATE user SET Password=PASSWORD('newpassword') where USER='root' and host='root' or host='localhost';//把空的用户密码都修改成非空的密码就行了。mysql>FLUSH PRIVILEGES;mysql>quit # /etc/init.d/mysqld restart# mysql -u root -pEnter password: <输入新设的密码newpassword>修改字符集和数据存储路径配置/etc/my.cnf文件,修改数据存放路径、mysql.sock路径以及默认编码utf-8.#查看字符集show variables like '%collation%';show variables like '%char%';SHOW VARIABLES LIKE '%character%'#查看默引擎show engines#查看默认包大小show VARIABLES like '%max_allowed_packet%';#查看log文件地址ls -l `pgrep mysqld | sed 's@.*@/proc/&/fd/@'` | grep log#查看插件地址show variables like 'plugin_dir'


# For advice on how to change settings please see# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the# *** default location during install, and will be replaced if you# *** upgrade to a newer version of MySQL.[mysqld]character-set-server=utf8default-storage-engine=INNODBmax_allowed_packet = 32Mslave_max_allowed_packet = 1024Mdatadir=/home/mysqldatasocket=/home/mysqldata/mysql.sockmax_connections = 1000relay_log_recovery = 1 #开启中继日志relay-log自我修复#Master configuration-defaults#server-id=1 #设置服务器id,为1表示主服务器,注意:如果原来的配置文件中已经有这一行,就不用再添加了。#log_bin=mysql-bin #启动MySQ二进制日志系统,注意:如果原来的配置文件中已经有这一行,就不用再添加了。#rpl_semi_sync_master_enabled=1#rpl_semi_sync_master_timeout=10000#Slave configuration-defaults#server-id=2 #设置服务器id,为2表示从服务器,注意:如果原来的配置文件中已经有这一行,就不用再添加了。
#rpl_semi_sync_slave_enabled=1# Remove leading # and set to the amount of RAM for the most important data# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.innodb_buffer_pool_size = 45Ginnodb_log_file_size=1024M# Remove leading # to set options mainly useful for reporting servers.# The server defaults are faster for transactions and fast SELECTs.# Adjust sizes as needed, experiment to find the optimal values.# join_buffer_size = 128M# sort_buffer_size = 2M# read_rnd_buffer_size = 2Msql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES[mysqld_safe]log-error=/var/log/mysqld.logpid-file=/home/mysqldata/mysqld.pid[client]socket=/home/mysqldata/mysql.sock

2
[root@localhost
~]
#
chkconfig --list | grep mysql
3
mysql
0:off   1:off   2:on    3:on    4:on    5:on    6:off
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: