mysql5.7在centos上安装的完整教程以及相关的“坑”

安装前的准备


Step1: 若是你系统已经有mysql,如通常centos自带mysql5.1系列,那么你须要删除它,先检查一下系统是否自带mysqlhtml



yum list installed | grep mysql


Step2: 删除系统自带的mysql及其依赖命令


yum -y remove mysql-libs.x86_64


Step3: 给CentOS添加rpm源,而且选择较新的源命令


wget dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
yum localinstall mysql-community-release-el6-5.noarch.rpm
yum repolist all | grep mysql
yum-config-manager --disable mysql55-community
yum-config-manager --disable mysql56-community
yum-config-manager --enable mysql57-community-dmr
yum repolist enabled | grep mysql

开始安装


Step4:安装mysql 服务器命令


yum install mysql-community-server

CENTOS7上安装MYSQL5.7还有一个巨坑


以前的Linux体系中数据库大局部是mysql,不外自从被sun收买之后,便出用散成正在centos那些开源Linux体系中了,那末如果念用的话便需要自己装置了,起首centos7 已没有支撑mysql。


之前的Linux系统中数据库大部分是mysql,不过自从被sun收购以后,就没用集成在centos这些开源Linux系统中了,那么若是想用的话就须要本身安装了,首先centos7 已经不支持mysql,由于收费了你懂得,因此内部集成了mariadb,而安装mysql的话会和mariadb的文件冲突,因此在运行如下命令前:


node

yum install mysql-community-server

须要先卸载掉mariadb,如下为卸载mariadb步骤

rpm -qa | grep mariadb

当检查出了系统自带的mariadb后如版本为:mariadb-libs-5.5.37-1.el7_0.x86_64 那么使用如下命令:

rpm -e --nodeps mariadb-libs-5.5.37-1.el7_0.x86_64

强制卸了它,再安装mysql5.7便可。

Step5: 启动mysql命令


service mysqld start



Step6: 查看mysql是否自启动,而且设置开启自启动命令


chkconfig --list | grep mysqld
chkconfig mysqld on



mysql5.7安装完后如何开启远程root包括远程用户权限



mysql5.7对于安全模块进行了升级,所以若是你想像之前那样在安装完mysql后直接以mysql -u root登陆进去再经过一系列的sql命令来更改权限可是这在mysql5.7上是行不通的,按照之前的作法,你会在面临mysql5.7碰到这样的一个报错“access denied for user root@localhost” ,所以请按照如下使用说明操做。


Step1: 中止mysqld服务并使用mysqld safe启动


service mysqld stop
mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

RHEL7.0系列的发行版(例如CentOs 7),特征是使用了systemd来代替原有的init,做为第一支启动的程序。此时网络上面所说的mysqld_secure已经不可以使用。可是查看官方文档后,得知在这种状况下mysqld能够支持部分mysqld_safe的参数,命令以下:mysql


mysqld   --user=mysql --skip-grant-tables --skip-networking &


Step2:登陆mysql


此时,你在mysql服务器上使用


mysql -uroot -p


就能够登陆mysql了


Step3: 更改mysql安全密码


先説一下缘由,mysql5.7出现这样的问题,是由于MYSQL5.6以后,增强了对安全性的管控,认为root用户进行mysql操做是一种危险的行为,因而限制了root用户登陆mysql()。可是咱们能够经过修改Mysql中user表的方法解决该问题
(网络上还有一种作法是查看/var/log/mysql.log,该文件内有安装后Mysql生成的随机密码,而后用文件里的密码正常登陆便可,有兴趣者本身能够试下,此处使用正规操做步骤)


mysql> SET PASSWORD = PASSWORD('ur password here');

若是出现如下信息:sql

ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement 


请先运行

update mysql.user set authentication_string=password('newpassword') where user='root'



Step4:更改mysql root的密码(和Step3中保持一致)

update mysql.user set authentication_string=password('newpassword') where user='root'




以前的mysql版本为:数据库


UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
flush privileges;




而mysql5.7已经把PASSWORD字段更名成了"authentication_string"这个名字了,此处须要注意了。


Step5:创建可供远程链接的root用户

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'ur password here' WITH GRANT OPTION;



Step6:在远程装个mysql workbench而后用远程root登陆,爱干嘛干嘛吧


MYSQL核心配置文件示例



虚拟CPU 6C
内存:6GB
优化过的配置以下:

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html


[mysqld]
#
# 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 = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# 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 = 6M
read_rnd_buffer_size = 4M


#deprecate this option after mysql5.5 default-character-set = utf8


character-set-server=utf8
open_files_limit    = 10240
back_log = 384
max_connections = 500
#deprecate this option after mysql5.5 table_cache = 512K
max_allowed_packet =16M
query_cache_size = 384M
table_open_cache = 512 
key_buffer_size = 384M 


datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock


# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0


log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid


slow_query_log_file = /var/log/mysqld-slow-query.log  
log-short-format
long-query-time = 3  
#log-long-format  
#log-slow-admin-statements  
log-queries-not-using-indexes
相关文章
相关标签/搜索