1. 解压到 /usr/local

# tar zxvf MysqL-5.7.17-linux-glibc2.5-x86_64.tar.gz -C /usr/local/


2. 重命名

#cd /usr/local/

#mv MysqL-5.7.17-linux-glibc2.5-x86_64/ MysqL

3. 创建用户

建立用户MysqL,组MysqL。后面MysqL就使用这个用户来运行(注意这也是MysqL启动脚本中默认的用户,因此最好不要改名)。
#groupadd MysqL
#useradd -r -g MysqL MysqL
(使用-r参数表示MysqL用户是一个系统用户,不能登录)

建立目录/data/MysqL/data,后面MysqL就安装在这个目录下面。
#mkdir /data/MysqL/data


4.初始化操作(生成初始密码):

先要创建 /data/MysqL/data 目录


[root@localhost MysqL]# ./bin/MysqLd --initialize --user=MysqL --basedir=/usr/local/MysqL --datadir=/data/MysqL/data
2016-07-22T09:58:15.001776Z 0 [Warning] InnoDB: New log files created,LSN=45790
2016-07-22T09:58:15.062066Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2016-07-22T09:58:15.073009Z 0 [Warning] No existing UUID has been found,so we assume that this is the first time that this server has been started. Generating a new UUID: ebfb8a6-4ff2-11e6-8c8d-005056a01a07.
2016-07-22T09:58:15.074370Z 0 [Warning] Gtid table is not ready to be used. Table 'MysqL.gtid_executed' cannot be opened.
2016-07-22T09:58:15.075736Z 1 [Note] A temporary password is generated for root@localhost: k_1ljzVh3<-,
[root@localhost MysqL]#
注意最后一行,这也是和之有版本不同的地方,它给了root一个初始密码,后面要登录的时候要用到这个密码。

PS: MysqL5.7新特性:由上面可以看出, MysqL_install_db 已经不再推荐使用了,建议改成 MysqLd --initialize 完成实例初始化。

注意:
1. data目录解压后没有,需要手动建立(见上文);
2. MysqL5.7和之前版本不同,很多资料上都是这个命令
...../scripts/MysqL_install_db --user=MysqL
而5.7版本根本没有这个。


5.创建配置文件 my.cnf

1.将默认生成的my.cnf备份
# mv /etc/my.cnf /etc/my.cnf.bak
[root@localhost support-files]# cp my-default.cnf /etc/my.cnf


2. 配置
将MysqL/support-files下的my-default.cnf改名为my.cnf,拷到/etc下(或者考到{MysqL}下,然后作一个软链接到/etc下):
#cp /usr/local/MysqL/support-files/my-default.cnf /etc/my.cnf
my.cnf中关键配置:
[MysqLd]
basedir = /usr/local/MysqL
datadir = /data/MysqL/data
port = 3306
socket = /data/MysqL/data/tmp/MysqL.sock

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES


注意,tmp目录不存在,请创建之。

如果不把my.cnf拷到/etc下,运行时会出现:
MysqLd: Can't change dir to '/usr/local/MysqL/data/' (Errcode: 2 - No such file or directory)
这样的出错提示,说明它没找到my.cnf中的配置;而去找了程序编译时的默认安装位置:/usr/local/MysqL


6. 加入MysqL为系统服务:
[root@localhost MysqL]# cp support-files/MysqL.server /etc/init.d/MysqLd
[root@localhost MysqL]# chkconfig MysqLd on
[root@localhost MysqL]# chkconfig --list|grep MysqLd
MysqLd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@localhost MysqL]#chmod 755 /etc/init.d/MysqLd

7. MysqL服务启动、重启、停止
[root@localhost MysqL]# service MysqLd start
[root@localhost MysqL]# service MysqLd stop
[root@localhost MysqL]# service MysqLd restart
[root@localhost MysqL]#


8. 设置环境变量:
[root@localhost MysqL]# vim /etc/profile
export PATH=/usr/local/MysqL/bin:$PATH
[root@localhost MysqL]# source /etc/profile

9. 检查MysqL是否能开启

[root@localhost MysqL]# cd /usr/local/MysqL
[root@localhost MysqL]# cd support-files/
[root@localhost support-files]# ./MysqL.server start
Starting MysqL.. SUCCESS!

问题1: 若改用了, 则在启动服务时会出现如下错误:
# ./support-files/MysqL.server start
./support-files/MysqL.server: line 276: cd: /usr/local/MysqL: No such file or directory
Starting MysqL ERROR! Couldn't find MysqL server (/usr/local/MysqL/bin/MysqLd_safe)
这时候我们需要修改/support-files/MysqL.server文件的basedir和datadir目录路径为我们正确的MysqL的basedir和datadir路径, 如下:
# vim support-files/MysqL.server 注意:修改后,再复制到#cp support-files/MysqL.server /etc/init.d/MysqLd
--------------------------
...
basedir=/usr/local/MysqL
datadir=/data/MysqL/data
...
--------------------------
# ./support-files/MysqL.server start
Starting MysqL.. SUCCESS!

问题2:[root@imango MysqL]# service MysqLd start
Starting MysqL...The server quit without updating PID file (/data/MysqL/data/imango.localdomain.pid).[Failed]

如果出现上面的错误,表示data目录没有权限:

[root@imango MysqL]# chown -R MysqL:MysqL /data
[root@imango MysqL]# chown -R MysqL:MysqL /data/MysqL/
[root@imango MysqL]# chown -R MysqL:MysqL /data/MysqL/data/
[root@imango MysqL]# chown -R MysqL:MysqL /data/MysqL/data/tmp/

[root@imango MysqL]# service MysqLd start
Starting MysqL.[ OK ]


10. 设置MysqL以服务运行并且开机启动

将{MysqL}/ support-files/MysqL.server 拷贝为/etc/init.d/MysqLd并设置运行权限

#cp MysqL.server /etc/init.d/MysqLd
#chmod +x /etc/init.d/MysqLd

把MysqL注册为开机启动的服务
#chkconfig --add MysqLd

当然也可以手动进行服务的开启和关闭:
#/etc/init.d/MysqLd start
#/etc/init.d/MysqLd stop

11. 客户端连接测试

#{MysqL}/bin/MysqL -uroot -p
此时要求输入密码,就是前面初始化时生成的密码。
这时如果连接服务的时候出现错误:
ERROR 2002 (HY000): Can't connect to local MysqL server through socket '/tmp/MysqL.sock' (2)
则需要在在my.cnf中填加:(与[MysqLd]节点中的socket一样就可以)

[client]
socket=/data/MysqL/data/tmp/MysqL.sock

连上后,在做任何操作前,MysqL要求要改掉root的密码后才能进行操作。
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
MysqL> alter user 'root'@'localhost' identified by 'xxxxxxx';

MysqL>SET PASSWORD = PASSWORD('xxxxxx');


另外打开一个终端(p.s. 如果是ssh连接登录的,另外创建一个ssh连接即可), 执行操作如下:


# MysqL -u root MysqL

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A


Welcome to the MysqL monitor. Commands end with ; or \g.

Your MysqL connection id is 2

Server version: 5.7.13 MysqL Community Server (GPL)

copyright (c) 2000,2015,Oracle and/or its affiliates. All rights reserved.

Oracle is a registered Trademark of Oracle Corporation and/or its

affiliates. Other names may be Trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


MysqL> use MysqL;

Database changed

MysqL> UPDATE user SET password=PASSWORD('123456') WHERE user='root';

ERROR 1054 (42S22): UnkNown column 'password' in 'field list'

MysqL> update user set authentication_string = PASSWORD('123456') where user = 'root';

Query OK,1 row affected,1 warning (0.02 sec)

Rows matched: 1 Changed: 1 Warnings: 1


MysqL> flush privileges;

Query OK,0 rows affected (0.00 sec)


MysqL> \s

MysqL Ver 14.14 distrib 5.7.13,for linux-glibc2.5 (x86_64) using EditLine wrapper


Connection id: 62

Current database:

Current user: root@localhost

SSL: Not in use

Current pager: stdout

Using outfile: ''

Using delimiter: ;

Server version: 5.7.13-log MysqL Community Server (GPL)

Protocol version: 10

Connection: Localhost via UNIX socket

Server characterset: utf8

Db characterset: utf8

Client characterset: utf8

Conn. characterset: utf8

UNIX socket: /data/AEData/MysqL/data/MysqL.sock

Uptime: 46 min 54 sec



Threads: 6 Questions: 6846 Slow queries: 0 Opens: 257 Flush tables: 1 Open tables: 201 Queries per second avg: 2.432

--------------


MysqL>

到此, 设置完MysqL用户root的密码且确保MysqL编码集是utf8,注意上面, 新版本的MysqL.user表里的密码字段是authentication_string



MysqL远程授权

格式如下:

MysqL> grant all [privileges] on db_name.table_name to 'username'@'host' identified by 'password';

示例如下:


MysqL> grant all privileges on *.* to 'root'@'%' identified by '123456';

Query OK,0 rows affected,1 warning (0.04 sec)


MysqL> FLUSH PRIVILEGES;

Query OK,0 rows affected (0.00 sec)

MysqL>

或用

MysqL> grant all on *.* to 'root'@'%' identified by '123456';



到此, 完成了MysqL的安装 及配置!!!


12、TIPS

【查看MysqL是否运行】
ps -ef|grep MysqLd
netstat -lnp | grep -i MysqL

【MysqL启动时读取配置文件my.cnf的顺序】
可以运行如下命令查看:
./bin/MysqLd --verbose --help |more
Default options are read from the following files in the given order:
/etc/my.cnf /etc/MysqL/my.cnf /usr/local/MysqL/etc/my.cnf ~/.my.cnf
可以看到,启动时可以从上述目录下读取配置文件my.cnf。如果当前my.cnf文件不位于上述位置,则必须考过去或做链接。



MysqL 5.7新特性之Generated Column(函数索引)http://www.linuxidc.com/Linux/2016-02/128066.htm

升级到MysqL 5.7 解决分区问题http://www.linuxidc.com/Linux/2016-02/128060.htm

MysqL 5.7 完美的分布式事务支持http://www.linuxidc.com/Linux/2016-02/128053.htm

MysqL 5.7 新特性详解http://www.linuxidc.com/Linux/2016-01/127636.htm

MysqL 5.7.11 发布下载http://www.linuxidc.com/Linux/2016-02/128268.htm

在 CentOS 7 中以命令行方式安装 MysqL 5.7.11 for Linux Generic 二进制版本http://www.linuxidc.com/Linux/2016-03/129187.htm

更多CentOS相关信息见CentOS专题页面http://www.linuxidc.com/topicnews.aspx?tid=14





附上配置文件:
[client]
loose_default-character-set = utf8
[MysqLd]
basedir = /usr/local/MysqL
datadir = /data/MysqL/data
port = 3306
server_id = 1
socket = /data/MysqL/data/MysqL.sock
expire_logs_days = 7
innodb_file_per_table
innodb_buffer_pool_size = 2G
innodb_thread_concurrency = 24
innodb_flush_log_at_trx_commit = 1
innodb_log_buffer_size = 32M
innodb_log_file_size = 256M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
wait_timeout = 60
interactive_timeout = 7200
skip-name-resolve
character-set-server = utf8
back_log = 50
max_connections = 3000
max_connect_errors = 32
max_allowed_packet = 32M
binlog_cache_size = 8M
max_heap_table_size = 512M
tmp_table_size = 64M
key_buffer_size = 16M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
bulk_insert_buffer_size = 64M
sort_buffer_size = 4M
join_buffer_size = 2M
thread_cache_size = 64
thread_stack = 192K
query_cache_type = 1
query_cache_size = 256M
query_cache_limit = 2M
ft_min_word_len = 2
default_storage_engine = INNODB
#default_table_type = INNODB
transaction_isolation = REPEATABLE-READ
lower_case_table_names = 1
#log_slow_queries
slow_query_log
long_query_time = 2
log-short-format
myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
[MysqLdump]
quick
max_allowed_packet = 32M
routines
single-transaction
hex-blob
skip-comments
complete-insert
skip-disable-keys
skip-add-locks
skip-lock-tables
[isamchk]
key_buffer = 512M
sort_buffer_size = 512M
read_buffer = 8M
write_buffer = 8M
[myisamchk]
[MysqLhotcopy]
interactive-timeout
# 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 = 2M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

CentOS 6.7 安装 MySQL5.7.17的更多相关文章

  1. canvas中普通动效与粒子动效的实现代码示例

    canvas用于在网页上绘制图像、动画,可以将其理解为画布,在这个画布上构建想要的效果。本文详细的介绍了粒子特效,和普通动效进行对比,非常具有实用价值,需要的朋友可以参考下

  2. H5混合开发app如何升级的方法

    本篇文章主要介绍了H5混合开发app如何升级的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  3. canvas学习和滤镜实现代码

    这篇文章主要介绍了canvas学习和滤镜实现代码,利用 canvas,前端人员可以很轻松地、进行图像处理,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  4. localStorage的过期时间设置的方法详解

    这篇文章主要介绍了localStorage的过期时间设置的方法详解的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  5. 详解HTML5 data-* 自定义属性

    这篇文章主要介绍了详解HTML5 data-* 自定义属性的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  6. HTML5的postMessage的使用手册

    HTML5提出了一个新的用来跨域传值的方法,即postMessage,这篇文章主要介绍了HTML5的postMessage的使用手册的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  7. 教你使用Canvas处理图片的方法

    本篇文章主要介绍了教你使用Canvas处理图片的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  8. ios – Swift语言:如何调用SecRandomCopyBytes

    从Objective-C,我可以这样做:在Swift中尝试这个时,我有以下内容:但我得到这个编译器错误:data.mutableBytes参数被拒绝,因为类型不匹配,但我无法弄清楚如何强制参数.解决方法这似乎有效:

  9. 使用Firebase iOS Swift将特定设备的通知推送到特定设备

    我非常感谢PushNotifications的帮助.我的应用聊天,用户可以直接向对方发送短信.但是如果没有PushNotifications,它就没有多大意义.它全部设置在Firebase上.如何将推送通知从特定设备发送到特定设备?

  10. ios – NSData to Data swift 3

    如何将此代码转换为使用Swift3数据?

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部