清除Centos7的默认数据库mariadb
rpm -qa |grep mariadb |xargs yum remove -y
下载mysql源码
cd /usr/local/
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz
解压mysql
tar -zxvf mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz
为mysql安装目录重命名
mv /usr/local/mysql-5.7.33-linux-glibc2.12-x86_64 /usr/local/mysql
新建data目录及pid文件
mkdir /usr/local/mysql/data
touch /usr/local/mysql/mysqld.pid
新建mysql用户组
groupadd mysql
新建mysql用户
useradd -r -g mysql mysql
修改/usr/local/mysql目录拥有者为新建的mysql用户
cd /usr/local/mysql
chown -R mysql:mysql ./
安装msql
./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize
#注意记住mysql控制台打印的初始密码,后续登录要用
修改/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=/usr/local/mysql/mysql.sock
#设置忽略大小写(简单来说就是sql语句是否严格)
lower_case_table_names = 1
# 开启ip绑定
bind-address = 0.0.0.0
innodb_buffer_pool_size=512M
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/usr/local/mysql/data/mysqld.pid
#指定客户端连接mysql时的socket通信文件路径
[client]
socket=/usr/local/mysql/mysql.sock
default-character-set=utf8
添加开机启动
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
#修改mysqld
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
mysqld_pid_file_path=/usr/local/mysql/mysqld.pid
防火墙开放端口号
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
启动mysql
service mysqld start
启动可能失败,请查看错误日志 log-error=/var/log/mysqld.log
如果是内存问题改变innodb_buffer_pool_size=512M的值
设置开机启动
chkconfig --add mysqld
配置mysql环境变量
vim /etc/profile
export PATH=$PATH:/usr/local/mysql/bin
#刷新
source /etc/profile
#重新启动mysql服务
service mysqld restart
登录mysq并修改mysql密码
#使用上面记住的密码
mysql -u root -p
若出现mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
处理步骤:
cd /usr/lib64/
ls libncurses*,ln -sf libncurses.so.6.1 libncurses.so.5
ls libtinfo*,ln -sf libtinfo.so.6.1 libtinfo.so.5
#修改密码
alter user 'root'@'localhost' identified by 'root';
#刷新权限
flush privileges;
#设置允许远程连接数据库
show databases;
use mysql;
show tables;
#查看允许连接的远程地址
select Host,User from user;
#设置
update user set user.Host='%' where user.User='root';
#刷新权限
flush privileges;