下载 tar
解压 tar -xvf mysql-5.7.39-linux-glibc2.12-x86_64.tar.gz
创建data/ 及 log/mysqld.log 文件,并给文件夹赋权限:chmod 777 -R data/
创建新的用户组和新的用户,用来管理mysql,提高安全性
groupadd mysql
添加mysql用户 ,并制定组为mysql,/sbin/nologin意思是用户不允许登录
useradd -r -g mysql mysql -s /sbin/nologin
给mysql用户授权能够访问/home下的mysql-5.7.29文件夹
chown -R mysql.mysql /home/mysql-5.7.29/
修改/etc/my.cnf 配置文件
basedir=/home/mysql-5.7.29
datadir=/home/mysql-5.7.29/data
socket=/home/mysql-5.7.29/mysql.sock
log-error=/home/mysql-5.7.29/logs/mysqld.log
pid-file=/home/mysql-5.7.29/data/mysqld.pid
default-character-set=utf8
#设置忽略大小写(简单来说就是sql语句是否严格),默认库名表名保存为小写, 不区分大小写
lower_case_table_names = 1
其中有个密码安全策略:5.7版本不能识别,会报错
初始化数据库
./bin/mysqld --initialize --user=mysql --basedir=/home/mysql-5.7.29/ --datadir=/home/mysql-5.7.29/data
basedir 及 datadir 为你的路径
此时会生成一个临时密码, 首次登录数据库时需要使用当前密码;
添加至开机启动
在mysql5.7.29的目录下执行下列语句,把启动脚本放到开机初始化目录
cp ./support-files/mysql.server /etc/init.d/mysqld
设置开机启动,在mysql-5.7.29的目录下执行下列语句(按个人需求选择加或不加)
chkconfig --add mysqld
修改mysqld,使用vim /etc/init.d/mysqld 命令
将代码中的basedir 及 datadir 修改为你的路径
启动mysql service mysqld start
重启mysql: service mysqld restart
查看mysql状态:service mysqld status
mysql如果登录失败 请查看mysqld.log日志 排查原因,
mysql重启时,需要创建mysqld.pid 文件,文件记录进程号
数据库启动成功,登录数据库
输入密码进行登录 mysql -u root -p
如果密码忘记或一直失败,可以在/etc/my.cnf
文件中添加 skip-grant-table
配置,跳过mysql配置
修改后重启mysql,进行mysql -u root -p
登录,输入密码时直接回车,即可登录,执行 flush privileges;
进行更新权限
登录成功后,给用户修改密码: alter user 'root'@'localhost' identified by '密码';
密码修改正确,使用quit 退出数据库,修改/etc/my.cnf
去掉skip-grant-table
配置,重启数据库,
进行mysql -u root -p 登录,输入密码后进行登录
给mysql开放远程连接权限 grant all privileges on *.* to 'root'@'%' identified by '密码';
执行 flush privileges;
进行更新权限
即可在数据库连接工具中进行测试
linux中执行mysql命令时出现 bash: mysql: 找不到命令
现这种错误的原因是由于系统默认会查找/usr/bin下的命令,mysql没有在这个目录下,所以报错,因此需要将mysql的安装路径链接到/usr/bin目录下 。
执行命令: ln -s /usr/local/mysql/bin/mysql /usr/bin
/usr/local/mysql/bin/mysql 为你数据库的安装路径
参考连接 mysql https://www.likecs.com/show-203894326.html#sc=1163