mysql5.7解压缩安装步骤

安装mysql解压缩版本其实很简单,安装官方指定目录/usr/local/mysql下只需要稍微改点东西就可以了,但是如果你解压到自己指定的目录就需要踩很多坑了,比如我,将mysql压缩包解压到了我自己指定的根目录下自己创建的/data目录下,就遇到了很多的问题!!!下面来看下吧!

一、先看有没有安装mysql:

1、检查库文件是否存在,如果有删除

输入命令:

[root@Mysqlzy ~]# rpm -qa | grep mysql

mysql-libs-5.1.52-1.el6_0.1.x86_64

2、如果执行上面命令后出现mysql-libs-5.1.52-1.el6_0.1.x86_64,将它删除调,如果有多个同上一 一删除

输入命令:

rpm -e mysql-libs-5.1.52.x86_64 --nodeps

3、检查mysql组和用户是否存在,如无创建

输入命令:cat /etc/group | grep mysql

输入命令:cat /etc/passwd | grep mysql

4、上面这种输入命令后是存在mysql组和用户,不用管继续向下操作,不存在执行增加

输入命令:添加组和用户

groupadd mysql

useradd -r -g mysql mysql

//useradd -r参数表示mysql用户是系统用户,不可用于登录系统

二、创建一个任意的目录,将mysql压缩包上传上去解压:

输入命令: tar -zxvf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz

解压后

如果感觉解压后名字太长不好操作那么就改个名字呗。

输入命令:mv mysql-5.7.17-linux-glibc2.5-x86_64/ mysql

当然,不想修改名称还可以创建一个链接,(类似于Windows快捷方式):

输入命令:ln -s mysql-5.7.17-linux-glibc2.5-x86_64 mysql

这时配置好后初步就完成了,可以进行下面的操作了,但是需要注意,如果mysql目录下没有data目录,手动建一个。用于用户存放数据。

三、初始化

1、解压完成mysql压缩包之后就能使用了吗?当然不是,我们需要初始化一下。

输入命令:

/data/mysql/bin/mysqld --initialize --user=mysql --datadir=/data/mysql/data --basedir=/data/mysql

--这是上面命令的详解:

/解压mysql路径/mysql/bin/mysqld --initialize --user=mysql --datadir=/解压mysql路径/mysql/data --basedir=/解压mysql路径/mysql

2、执行完成后如果没有发现ERROR信息继续操作下面步骤。

四、设置mysql以服务运行并且开机启动

1、输入命令:  此命令为将mysql注册为开机启动

[root@Mysqlzy data]# chkconfig --add mysql

执行后发现报错了,这是怎么回事?

这时我们先不设置开机启动,我们也可以使用命令手动启动,我们手动启动试下?

输入命令:[root@Mysqlzy data]# /etc/init.d/mysql start

手动启动也是报错,对于第一次安装mysql的我是一脸蒙*啊!后来问了度娘之后才知道少了一步,有个文件需要我们自己拷贝过去。

2、进入到我们解压的mysql目录下,找到有一个support-files的目录,进去找到有个mysql.server的文件,将这个文件拷贝到/etc/init.d/mysql 下面

输入命令:  拷贝文件

[root@Mysqlzy support-files]# cp mysql.server /etc/init.d/mysql

输入命令:  设置执行权限

[root@Mysqlzy support-files]# chmod +x /etc/init.d/mysql

3、这个时候我们再做上面的开机启动命令和手动启动命令

开机启动没报错,再执行手动启动还是报错,why?等等,上面写着/usr/local/mysql/[失败]sqld_safe,我们一开始说mysql默认路径是在/usr/local/路径下,但是我现在mysql的路径是在/data/路径下,那么肯定是有文件默认写死了/usr/local/,所以导致启动的时候找不到我们解压的路径导致的错误,经过各种度娘查找,终于找到了准确的答案

4、修改/etc/init.d/mysql 文件、修改/data/mysql/bin/mysqld_safe 文件

输入命令:vi /etc/init.d/mysql

进入之后将所有usr/local 全部换成我们解压缩的目录,我的是data

输入命令:vi /etc/init.d/mysql

同上:进入之后将所有usr/local 全部换成我们解压缩的目录,我的是data

如:

当然有很多处,不一 一列出了。

5、这时再启动:

。。。。还是报错,此时此刻,心中有一万匹那个什么在奔腾,算了发牢骚也没用呀,解决问题吧。

最后发现是没有给解压缩的mysql文件夹设置mysql用户和组。。。进入我们mysql压缩目录

输入命令:chown mysql:mysql mysql

这时再启动:

哈哈哈哈!终于起来了,我们进入mysql执行下查询语句或者创建数据库试下吧!

五、这时进入mysql还不行,还得将mysql/support-files下的my-default.cnf改名为my.cnf,拷到/etc下 

输入命令:

cp /usr/local/apps/mysql/support-files/my-default.cnf   /etc/my.cnf

使用vim打开后编辑(以下仅为基础配置)

输入命令:

vim /etc/my.cnf

可以根据自己项目的真实需要相应的修改下面这些参数

[client]
no-beep
socket =/data/mysql/mysql.sock
# pipe
# socket=0.0
port=3306
[mysql]
default-character-set=utf8
[mysqld]
basedir=/data/mysql
datadir=/data/mysql/data
port=3306
# skip-grant-tables
skip-name-resolve
socket =/data/mysql/mysql.sock
character-set-server=utf8
default-storage-engine=INNODB
explicit_defaults_for_timestamp = true
# Server Id.
server_id = 3306
max_connections=2000
query_cache_size=0
table_open_cache=2000
tmp_table_size=246M
thread_cache_size=300
#限定用于每个数据库线程的栈大小。默认设置足以满足大多数应用
thread_stack = 192k
key_buffer_size=512M
read_buffer_size=4M
read_rnd_buffer_size=32M
innodb_data_home_dir =/data/mysql/data
innodb_flush_log_at_trx_commit=0
innodb_log_buffer_size=16M
innodb_buffer_pool_size=256M
innodb_log_file_size=128M
innodb_thread_concurrency=128
innodb_autoextend_increment=1000
innodb_buffer_pool_instances=8
innodb_concurrency_tickets=5000
innodb_old_blocks_time=1000
innodb_open_files=300
innodb_stats_on_metadata=0
innodb_file_per_table=1
innodb_checksum_algorithm=0
back_log=80
flush_time=0
join_buffer_size=128M
max_allowed_packet=1024M
max_connect_errors=2000
open_files_limit=4161
query_cache_type=0
sort_buffer_size=32M
table_definition_cache=1400
binlog_row_event_max_size=8K
sync_master_info=10000
sync_relay_log=10000
sync_relay_log_info=10000
#批量插入数据缓存大小,可以有效提高插入效率,默认为8M
bulk_insert_buffer_size = 64M
interactive_timeout = 120
wait_timeout = 28800
log-bin-trust-function-creators=1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
lower_case_table_names=1
slow_query_log = ON
slow_query_log_file = /data/mysql/data/mysql_query_slow.log
long_query_time = 5

binlog-do-db=map_db

#启用二进制日志
log-bin=mysql-bin
#服务器唯一ID
server-id=3306

sock文件是用于建立两个程序之间的连接使用的。需要给与mysql用户(上文创建了)权限。

如果socket 后面指定的文件夹如果存在不用管,如不存在需要自行创建。

添加完后可以修改权限:

输入命令 :[root@localhost mysql]# chown -R mysql:mysql 文件夹名

六、客户端连接测试

输入命令:

[root@Mysqlzy /]# /data/mysql/bin/mysql -uroot -p

我在登陆时时出现了这个错误(密码不正确):

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

解决方法:

打开my.cnf文件

[mysqld]下添加这么一行

skip-grant-tables

[mysqld]
basedir=/data/mysql
datadir=/data/mysql/data
port=3306
# skip-grant-tables
skip-name-resolve
socket =/data/mysql/mysql.sock
skip-grant-tables

跳过密码校验,这样登陆mysql就不需要密码了

记住改完文件需要重启mysql哦

输入命令: /etc/init.d/mysql restart

然后再使用命令:/data/mysql/bin/mysql -uroot -p 就进去啦

然后使用sql语句修改root用户的密码

update mysql.user set authentication_string=password('123456') where user='root' ;
flush privileges;

 

注意:这里使用的是authentication_string,而不是password,因为在mysql5.7开始就没有这个命令了。

错误的命令:update mysql.user set password=password('123456') where user='root' ;

然后,再将skip-grant-tables从my.cnf文件中去掉,即可完成。

重启mysql服务

再次运行

[root@localhost mysql]#/data/mysql/bin/mysql -uroot -p

/data/mysql/bin/mysql -uroot -p

就完成了 

使用新密码登陆之后不管输入什么命令都报

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

解决方式:输入语句

SET PASSWORD = PASSWORD('your new password');

ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;

flush privileges;

修改远程连接权限:

update user set host = '%' where user ='root';

flush privileges;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Male晓

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值