1、下载解压版mysql安装包
https://dev.mysql.com/downloads/mysql/
2、上传解压包到/usr/local/src目录
3、查看吸引已安装的组件
yum grouplist
4、安装依赖
yum groupinstall Development Tools -yum
5、解压mysql
cd /usr/local/src tar -zxvf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz -C /usr/local cd /usr/local mv mysql-5.7.30-linux-glibc2.12-x86_64 mysql-5
6、创建运行mysql的与用户
useradd -u 5050 -s /sbin/nologin -M mysql
7、设置权限(/usr/local/mysql/)这个目录是刚才解压的目的目录
chown -R mysql.mysql /usr/local/mysql/
8、建立数据库存储目录 /data/mysqldata目录
mkdir -p /data/mysqldata
9、设置数据库存储目录的用户权限为mysql
chown -R mysql.mysql /data/mysqldata/
10、初始化数据库(这个地方和老版本的mysql初始化数据库不相同)
cd /usr/local/mysql bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysqldata
没有任何意外的话,能安装成功,会产生一大堆初始化日志和安装成功提示,会给mysql的
root@localhost用户设置1个临时生成的随机密码;
会在/data/mysqldata/ 目录下产生日志文件和数据目录
11、建立启动脚本并设置启动
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld chmod 755 /etc/init.d/mysqld chkconfig --add /etc/init.d/mysqld chkconfig --level 3 mysqld on
12、设置命令路径
echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile source /etc/profile
13、设置/etc/my.cnf 配置文件
cat > /etc/my.cnf <<EOF [mysqld] datadir=/data/mysqldata socket=/tmp/mysql.lock symbolic-links=0 skip_name_resolve=on skip-grant-tables [mysqld_safe] log-error=/data/mysqldata/mysql-err.log pid-file=/data/mysqldata/mysql.pid [client] port=3306 socket=/tmp/mysql.lock EOF
14、启动mysql服务 2中方式的示例: 特别注意,在启动mysql
前,需要设置my.cnf文件,
第一种方式
/etc/init.d/mysqld start
第二种方式
/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --user=mysql &
16、mysql 5.7之后版本在初始化之后会给mysql的root@localhost用户设置一个临时的随机密码,最好是修改掉
方法一:使用 mysql -e 直接修改
mysql -e 'update mysql.user set authentication_string=password("root") where user="root";'
方法二:先登录到mysql
update mysql.user set authentication_string=password("root"); flush privileges;
17/退出mysql命令终端,修改my.cnf ,取消skip-grant-tables选项
重启mysql服务 之后再登录就需要密码登录
mysql -uroot -p
18、再次修改mysql数据库的root@localhost用户密码
alter user 'root'@'localhost' identified by '123456';
19、创建新的管理员用户 root@'%' ,这个root可以通过远程
设备登录,并且这个用户可以创建新的用户的操作如下:
create user 'root'@'%' identified by '123456'; grant all privileges on *.* to 'root'@'%' identified by '123456'; update mysql.user set Grant_priv='Y' where user='root' and Host='%';