下载地址:MySQL :: Download MySQL Community Server
链接:https://pan.baidu.com/s/1DcpAt5qivEkfCPE-9ur3MQ
提取码:g56a
上传到linux
解压
tar -xvf mysql-5.7.35-linux-glibc2.12-x86_64.tar
再移动并重命名一下
mv mysql-5.7.35-linux-glibc2.12-x86_64 /usr/local/mysql
创建mysql用户组和用户并修改权限
groupadd mysql
useradd -r -g mysql mysql
创建数据目录并赋予权限
mkdir -p /data/mysql #创建目录
chown mysql:mysql -R /data/mysql #赋予权限
配置my.cnf
在msyql5.7.x左右版本里面和mysql8.0以上的版本中,对于 group by 的这种聚合操作,如果在select 中的列,没有在group by 中出现,那么这个SQL是不合法的,因为列不在group by的从句中,所以对于设置了这个mode的数据库,在使用group by 的时候,就要用MAX(),SUM(),ANT_VALUE()的这种聚合函数,才能完成GROUP BY 的聚合操作,
如果提示不合法的话,只需要在配置文件中
配置文件中配置1. sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
直接数据库管理工具执行2.
SET sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
vim /etc/my.cnf
[mysqld]
bind-address=0.0.0.0
port=3306
#区分表的大小写 0是开启 1是关闭
lower_case_table_names=1
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true
初始化数据库
进入mysql的bin目录
cd /usr/local/mysql/bin/
初始化
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
如果初始化出现以下错误:
这种情况缺少libaio环境,需要安装两种情况:
离线服务器下安装:
链接:https://pan.baidu.com/s/1aICOXAuRBGID9sFh_NOc1w
提取码:wbso
先下载后,上传到服务器
rpm -ivh libaio-0.3.109-13.el7.x86_64.rpm
查看密码
cat /data/mysql/mysql.err
启动mysql,并更改root 密码
先将mysql.server放置到/etc/init.d/mysql中
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
启动mysql
service mysql start
ps -ef|grep mysql
到这里说明mysql已经安装成功了!!
下面修改密码
首先登录mysql,前面的那个是随机生成的。
./mysql -u root -p #bin目录下
执行的时候报错:
mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
原因:mysql在启动时发现缺少 libncurses.so.5 这个依赖,并且在/usr/lib以及/lib中也无法找到该依赖
解决:在/usr/lib、/lib、/usr/lib64中寻找一个大于或者等于该依赖版本的依赖文件,我的是在/usr/lin64中找到了一个libncurses.so.6.1,然后建立一个软链接(相当于快捷方式):
sudo ln -s 文件路径 快捷方式路径
sudo ln -s /usr/lib64/libncurses.so.6.1 /usr/lib64/libncurses.so.5
这样就在/usr/lib64下建立了一个libncurses.so.5的快捷方式。mysql在启动时就会寻找该libncurses.so.5依赖的快捷方式,最后实际链接到了libncurses.so.6.1依赖。
此时再次查看mysql依赖:
登陆mysql 修改名字
1、SET PASSWORD = PASSWORD('111111');
2、ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
3、FLUSH PRIVILEGES;
4、exit
如果用工具远程连接失败
这里主要执行下面三个命令(先登录数据库)
use mysql #访问mysql库
update user set host = '%' where user = 'root'; #使root能再任何host访问
FLUSH PRIVILEGES; #刷新
最后执行以下命令,就不用每次都到bin目录下执行了
ln -s /usr/local/mysql/bin/mysql /usr/bin
以后登陆MySQL:
mysql -u 用户名 -p