Linux环境下安装mysql-5.7

开发不易,希望各位同仁少踩坑,故在此指出安装mysql-5.7各种坑,同时附上解决方案.

1.下载
mysql各版本下载地址: http://ftp.ntu.edu.tw/MySQL/Downloads/
我这里选择mysql-5.7.21,通用版,linux下64位。

2.解压
将安装包放到 /usr/local 目录下,解压
tar -zxvf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
修改解压目录名称为mysql

3.添加用户组和用户
添加用户组
[root@iz8vb5o19rg1twsj651szwz local]# groupadd mysql

添加用户mysql 到用户组mysql
[root@iz8vb5o19rg1twsj651szwz local]# useradd -g mysql mysql

4.安装
设置权限
[root@iz8vb5o19rg1twsj651szwz local]# chown -R mysql .
[root@iz8vb5o19rg1twsj651szwz local]# chgrp -R mysql .
[root@iz8vb5o19rg1twsj651szwz local]# yum install libaio

执行安装脚本并初始化:
[root@iz8vb5o19rg1twsj651szwz local]# cd mysql
[root@iz8vb5o19rg1twsj651szwz mysql]# ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
//注释
./bin/mysqld --initialize --user=mysql --basedir=你安装的mysql文件夹所在路径 --datadir=数据目录路径bai

运行该命令后可能出现报错如下:

error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

解决:
出现该问题首先检查该链接库文件有没有安装使用 命令进行核查
rpm -qa|grep libaio
运行该命令后发现系统中无该链接库文件,则进行安装
yum install libaio-devel.x86_64
安装成功后,继续运行数据库的初始化命令,提示成功。

注意:初始化最后的默认密码需要记住
image.png

成功后接着执行下面命令:
[root@iz8vb5o19rg1twsj651szwz mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@iz8vb5o19rg1twsj651szwz mysql]# chmod 755 /etc/init.d/mysqld

注意:5.6之前的版本是此操作
[root@iz8vb5o19rg1twsj651szwz mysql]# cp support-files/my-medium.cnf /etc/my.cnf
5.6之后的版本执行以下操作
[root@iz8vb5o19rg1twsj651szwz mysql]# cp support-files/my-default.cnf /etc/my.cnf

修改启动脚本
[root@iz8vb5o19rg1twsj651szwz mysql]# vi /etc/init.d/mysqld

修改项:
basedir=/usr/local/mysql/
datadir=/usr/local/mysql/data/mysql

启动服务
[root@iz8vb5o19rg1twsj651szwz mysql]# service mysqld start

启动服务可能报错:
image.png

解决
启动失败注意检查数据目录的权限,要与mysql程序运行用户权限一致,执行以下命令解决
[root@db01 mysql]# chown -R mysql.mysql ../mysql

若还报错请参考:https://blog.csdn.net/eagle89/article/details/79813405

5.启动成功后登录测试
接着再进行以下操作
[root@iz8vb5o19rg1twsj651szwz ~]# yum install ncurses ncurses-devel
[root@iz8vb5o19rg1twsj651szwz ~]# yum install libncurses.so.5
[root@iz8vb5o19rg1twsj651szwz ~]# /usr/local/mysql/bin/mysql -V

登录测试,输入默认密码即可登录成功
[root@iz8vb5o19rg1twsj651szwz ~]# /usr/local/mysql/bin/mysql -uroot -p

6.重置用户密码
用密码登录后,必须马上修改新的密码,不然使用数据库会报如下错误:

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

修改密码
mysql> alter user 'root'@'localhost' identified by '123456';

可能修改密码报错

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
解决
这个其实与validate_password_policy的值有关。validate_password_policy有以下取值:


image.png

默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。
有时候,只是为了自己测试,不想密码设置得那么复杂,譬如说,我只想设置root的密码为123456。
必须修改两个全局参数:首先,修改validate_password_policy参数的值

mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)

validate_password_length(密码长度)参数默认为8,我们修改为1
mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)

完成之后再次执行修改密码语句即可成功
mysql> alter user 'root'@'localhost' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;

查看用户表密码是否已更改
mysql> select user,host,password from mysql.user;
mysql> exit; 

7.使用新密码登录
登录命令:mysql -uroot -p

image.png

解决:安装mysql命令行
yum install mysql

然后再次登录成功


image.png
若登录出现异常:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '***' (2)

解决请参考:http://aiezu.com/article/45.html

8.开启mysql的远程访问权限
mysql> use mysql;
注释:root代表用户,123456是密码
mysql> GRANT ALL PRIVILEGES ON . TO root@"%" IDENTIFIED BY "123456";
mysql> flush privileges;

因为阿里云服务器自带防火墙,所以还要在阿里云服务器开发3306端口


image.png

至此完成安装完成!!

相关命令:
重启mysql
service mysqld restart
启动mysql
service mysqld start
关闭mysql
service mysqld stop
查看运行状态
service mysqld status

另附mysql配置文件

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
skip-name-resolve
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M
[mysqld_safe]
log=/usr/local/mysql/log/mysql.log
long_query_time=2
log-slow-queries= /usr/local/mysql/log/slowquery.log
log_error=/usr/local/mysql/log/mysql.log
pid-file=/usr/local/mysql/log/mysql.pid
image.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,175评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,674评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,151评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,597评论 1 269
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,505评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,969评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,455评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,118评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,227评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,213评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,214评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,928评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,512评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,616评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,848评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,228评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,772评论 2 339