1 检查系统是否默认安装mysql服务,如果安装,则卸载。
1)检查命令
rpm -qa|grep mysql
2)卸载命令
rpm -e --nodeps mysql-libs-5.1.73-7.el6.x86_64
2 如果是centos7,那么默认会安装一个mysql的分支数据库mariadb,必须先卸载此数据库
1)查找
rpm -qa|grep mariadb
2)拷贝找到的列表,一个个卸载,如
rpm -e --nodeps mariadb-libs-5.5.64-1.el7.x86_64
3 上传mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz安装包到/opt/software目录下,执行解压到/opt/module目录下
tar -zxvf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz -C /opt/module/
4 创建目录
mkdir /opt/module/mysql-5.7.28/data
5 主目录权限处理,查看组和用户情况
cat /etc/group | grep mysql
cat /etc/passwd |grep mysql
若存在,则删除原mysql用户:userdel -r mysql,会删除其对应的组和用户
在查看就会发现没有,说明你已经删掉了
6 创建mysql组和mysql用户
groupadd mysql
useradd -r -g mysql mysql
chown -R mysql:mysql /opt/module/mysql-5.7.28
7 创建配置文件及相关目录
修改配置文件:/etc/my.cnf,配置不对的话,后面初始化不全,会拿不到默认密码。
vi /etc/my.cnf
修改内容:
[mysqld]
basedir=/opt/module/mysql-5.7.28
datadir=/opt/module/mysql-5.7.28/data
port = 3306
socket=/tmp/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/tmp/mysqld/mysqld.pid
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
log-bin=mysql-bin
binlog-format=ROW
server_id=1
max_connections=1000
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
:wq! 保存退出。
创建文件/tmp/mysql.sock:设置用户组及用户,授权
cd /tmp
touch mysql.sock
chown mysql:mysql mysql.sock
chmod 755 mysql.sock
创建文件/tmp/mysqld/mysqld.pid:
mkdir mysqld
cd mysqld
touch mysqld.pid
cd ..
chown -R mysql:mysql mysqld
cd mysqld
chmod 755 mysqld.pid
创建文件/var/log/mysqld.log:
touch /var/log/mysqld.log
chown -R mysql:mysql /var/log
cd log
chmod 755 mysqld.log
进入bin目录:
cd /opt/module/mysql-5.7.28/bin
初始化数据库:
./mysqld --initialize --user=mysql --basedir=/opt/module/mysql-5.7.28--datadir=/opt/module/mysql-5.7.28/data
注:
这时会出现错误
./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
解决方案:
yum install -y libaio
如果是内网不能上网的环境,那么就得手动安装 numactl-2.0.9-2.el6.x86_64.rpm 和 libaio-0.3.109-13.el7.x86_64.rpm 这两个rpm包
rpm -ivh numactl-2.0.9-2.el6.x86_64.rpm
rpm -ivh libaio-0.3.109-13.el7.x86_64.rpm
然后在执行
./mysqld --initialize --user=mysql --basedir=/opt/module/mysql-5.7.28--datadir=/opt/module/mysql-5.7.28/data
安全启动:
./mysqld_safe --user=mysql &
是否启动成功,可以通过查看mysql进程,ps -ef | grep mysql
默认密码在mysqld.log日志里, 找到后保存到安全的地方:
cat /var/log/mysqld.log
其中root@localhost: 后面的就是默认密码,后面登录用.(如果找不到可能默认是空,登录时密码直接回车,否则可能安装有问题)
进入bin目录:
cd /opt/module/mysql-5.7.28/bin
登录mysql:
./mysql -u root -p
拷贝或者输入mysqld.log中获得的默认密码,即可进入mysql命令客户端。
show databases;
假设密码修改为123456
mysql> set password=password("123456");
设置远程登录权限
mysql>grant all privileges on *.* to 'root'@'%' identified by '123456';
立即生效:
mysql> flush privileges;
退出quit 或者 exit;
mysql> quit;
开机服务启动设置:
把support-files/mysql.server 拷贝为/etc/init.d/mysql:
cp -a /opt/module/mysql-5.7.28/support-files/mysql.server /etc/init.d/mysql
查看mysql服务是否在服务配置中
chkconfig --list mysql
若没有,则把mysql注册为开机启动的服务,然后在进行查看
chkconfig --add mysql
chkconfig --list mysql
启动 或 停止
service mysql start
service mysql stop
创建快捷方式:
服务启动后,直接运行mysql -u root -p即可登录,不需要进入到对应的目录。
ln -s /opt/module/mysql-5.7.28/bin/mysql /usr/bin