偿试过用yum安装的都失败了,原因是服务启动时报错,偿试了多种解决办法,均不成功。然用源码方法却成功了,下面就介绍记录一下安装步骤。
1 安装cmake工具
yum install -y cmake make gcc gcc-c++ libaio ncurses ncurses-devel
2 进入/usr/local/src目录,下载安装操作
下载mysql压缩包
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
解压
tar -zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
复制解压后的文件夹到/usr/local/mysql目录
cp -r mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/mysql
添加系统mysql组和mysql用户
groupadd mysql
useradd -r -g mysql mysql // 添加完成后可用id mysql查看
安装数据库,这一步时间要久一点
切到mysql目录 cd /usr/local/mysql
修改当前目录拥有者为mysql用户 chown -R mysql:mysql ./
安装数据库 bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
此步会生成临时密码,不记得也没关系,可通过命令查找出来:grep "password" /var/log/mysqld.log
3 配置my.cnf
清空my.cnf:cat /dev/null > /etc/my.cnf
编辑:vim /etc/my.cnf 复制如下文本进去
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
#不区分大小写
lower_case_table_names = 1
#不开启sql严格模式
sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
log-error=/var/log/mysqld.log
pid-file=/usr/local/mysql/data/mysqld.pid
启动相关配置
添加开机启动
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
修改开机启动路径
vim /etc/init.d/mysqld
basedir=与datadir=后面添加:
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
启动mysql
service mysqld start
加入开机启动
chkconfig --add mysqld
登录mysql报错
mysql -uroot -p
报错:-bash: /usr/bin/mysql: 没有那个文件或目录
解决:添加软连接 ln -s /usr/local/mysql/bin/mysql /usr/bin
报错Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
原因: 我们前面my.cnf中mysqld下,socket=/tmp/mysql.sock。
解决:在服务启动后执行 ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
设置root用户密码
找回默认密码
grep "password" /var/log/mysqld.log
设置新密码
alter user 'root'@'localhost' identified by '你的新密码';
flush privileges; #刷新权限
或者
step 1: SET PASSWORD = PASSWORD(‘你的新密码’);
step 2: ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
step 3: flush privileges;
然后,执行exit退出,重新mysql -u root -p登录。