安装新版数据库mysql提示老版_cenos下安装MySQL最新版(5.7.18)记录。附卸载老版本过程...

首先说明:老版本数据库没有数据,所以无数据备份过程。如果你在升级数据库过程里,需要备份数据,请另外自行处理。

1、下载最新版MySQL、解压待用

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz #下载

tar -zxvf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz #解压

cp -r mysql-5.7.18-linux-glibc2.5-x86_64 /usr/local/mysql #复制到安装目录

2、添加用户

#添加用户组

groupadd mysql

#添加用户mysql 到用户组mysql

useradd-g mysql mysql

3、创建数据文件存放目录(没有放在MySQL默认的目录)

mkdir /datas

mkdir/datas/mysql

chown-R mysql.mysql /datas/mysql

chmod777 /datas/mysql

4、卸载老版本(这里可能会遇到各种问题)

rpm -qa|grep -i mysql #查找已有的包,当时我有2个(php-mysql-5.4.16-42.el7.x86_64、perl-DBD-MySQL-4.023-5.el7.x86_64)

rpm -ev php-mysql-5.4.16-42.el7.x86_64 #删除其中一个,正常,然后另外一个删不掉,有依赖安装包

yum -y remove perl-DBD-MySQL #这样才终于卸载掉

具体这个步骤,参考这里,感谢原作者:

5、安装新的MySQL,当前用户在 /var/local/mysql/ 目录下:

./bin/mysqld --initialize --user=mysql --datadir=/datas/mysql #安装

./support-files/mysql.server start #启动服务

这里有可能无法启动,问题:mysqld_safe error不能创建错误日志文件

cd /var/log/mariadb/

vi mariadb.log #新建一个文件

chown mysql.mysql mariadb.log

chmod 777 mariadb.log

再启动就ok了

参考,感谢原作者:http://tieba.baidu.com/p/5103002724

ps aux | grep mysql #查看一下进程

/usr/local/mysql/bin/mysql -V #查看版本,是不是正确的,或者登陆后用命名查看: SELECT VERSION();

6、安装正常后,就是初始配置了。包括:修改root密码、修改端口、允许用户远程登陆

不过安装过程,要注意,有个初始密码【(YngqRv7m).e】(每次每个人都不同,先记着,一会儿登陆的时候用):

2017-06-29T02:20:02.092807Z 1 [Note] A temporary password is generated for root@localhost: (YngqRv7m).e

端口:

vi /etc/my.cnf #编辑配置文件

修改如下:

[mysqld]

datadir=/datas/mysql

port=33316

[client]

port=33316

修改root用户:

登陆mysql:

/usr/local/mysql/bin/mysql -uroot -p

如果报错 Can’t connect to local MySQL server through socket

应该是“/etc/my.cnf”配置文件的问题了。解决办法是修改“/etc/my.cnf”配置文件,在配置文件中添加“[client]”选项和“[mysql]”选项,并使用这两个选项下的“socket”参数值,与“[mysqld]”选项下的“socket”参数值,指向的socket文件路径完全一致。如下,

[mysqld]

datadir=/datas/mysql

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

port=33316[client]default-character-set=utf8

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

port=33316[mysqld_safe]

log-error=/var/log/mariadb/mariadb.log

pid-file=/var/run/mariadb/mariadb.pid

然后登陆进去,修改root

/usr/local/mysql/bin/mysql -uroot -p #然后输入上面记下的密码 (YngqRv7m).e

操作可能会报错:

mac mysql error You must reset your password using ALTER USER statement before executing this statement.

安装完mysql 之后,登陆以后,不管运行任何命令,总是提示这个。那么:

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

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

flush privileges;

然后是设置允许远程登录:

需要手动增加可以远程访问数据库的用户。

方法一、本地登入mysql,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,将"localhost"改为"%"

mysql>use mysql;

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

mysql>select host, user from user;

方法二、直接授权(推荐)

从任何主机上使用root用户,密码:youpassword(你的root密码)连接到mysql服务器:

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

FLUSH PRIVILEGES

我用方法一不行,继续方法二才好。没测试是不是方法执行了还需要重启mysql,按道理应该不用。

#给用户test赋予所有库和表的部分权限(所以权限是: all privileges)

grant select,delete,update,create,drop on *.* to test@"%" identified by "1234";#修改用户密码

update mysql.userset authentication_string=password('密码') where User='test' and Host='localhost';

flush privileges;

另外附:

有时候mysql报错:Got a packet bigger than 'max_allowed_packet' bytes

然后命令查看和配置文件里查看的max_allowed_packet结果不一样(命令查询是1024):

show VARIABLES like '%max_allowed_packet%'; #结果为1024

那就考虑是因为服务器的内存太小,被MySQL重置为1024了。

解决办法是:1、重启MySQL,就好了;2、根本解决办法是服务器加内存。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值