linux下安装mysql
1、下载准备需要安装的mysql安装包
官网下载地址:https://downloads.mysql.com/archives/community/
mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
2、下载完毕后上传到linux服务器
3、解压
cd 到安装包所在路径,例如:cd /usr/local/share/soft/
tar -xzvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
将其解压到指定路径,并且通过mv命令修改名字为 mysql
mv 解压出来的文件名 mysql
4、创建用户和组
[root@localhost ~]# groupadd mysql
[root@localhost ~]# useradd -r -g mysql mysql
5、将安装目录所有者及所属组改为mysql
[root@localhost ~]# chown -R mysql.mysql /usr/local/share/soft/mysql
6、创建data文件夹,用于存放数据库表之类的数据
[root@localhost mysql]# mkdir data #进入mysql文件夹
7、初始化
安装依赖包
[root@localhost mysql]# yum install libaio
进行初始化
[root@localhost mysql]# /usr/local/share/soft/mysql/bin/mysqld --user=mysql --basedir=/usr/local/share/soft/mysql --datadir=/usr/local/share/soft/mysql/data --initialize
8、编辑配置文件
- 从5.7.18开始不在二进制包中提供my-default.cnf文件(官网)。参考:https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html
- 经过测试,在5.7.18版本中,使用tar.gz安装时,也就是压缩包解压出来安装这种,已经不再需要my.cnf文件也能正常运行。
- my.cnf文件就是把在命令行上启动MySQL时后面的参数用cnf文件配置好,那么下载启动时就不再需要在命令上加如参数。
- 所以:安装mysql5.7.18之后的版本就不需要再路径/etc下面配置my.cnf文件也可以了,但是如果需要开启MySQL的慢查询或者时主从复制的功能还是需要在/etc下面配置my.cnf文件的,但是只需要复制跟自己使用功能相关的配置即可没必要全部复制
参考文档:(具体可参考网络文档)
本文my.cnf的配置如下:
vi /etc/my.cnf
在配置文件中写入以下内容:
[mysqld]
datadir=/usr/local/share/soft/mysql/data
basedir=/usr/local/share/soft/mysql
socket=/tmp/mysql.sock
user=mysql
port=3306
character-set-server=utf8
# 取消密码验证
skip-grant-tables
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# skip-grant-tables
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
9、将mysql加入到服务中
[root@localhost mysql]# cp /usr/local/share/soft/mysql/support-files/mysql.server /etc/init.d/mysql
10、设置开机启动
[root@localhost mysql]# chkconfig mysql on
11、启动mysql服务
[root@localhost mysql]# service mysql start
重启:
[root@localhost mysql]# service mysql restart
停止:
[root@localhost mysql]# service mysql stop
12、登录mysql
在配置文件/etc/my.cnf中跳过密码登陆,所以可以免密登录
[root@localhost mysql]# /usr/local/share/soft/mysql/bin/mysql -uroot -p
可以加到环境变量
编辑配置文件
[root@localhost mysql]# vim /etc/profile
图片来源网络(本人实际未进行此项配置)
输出
[root@localhost mysql]# source /etc/profile
这是可以使用
[root@localhost mysql]# mysql -u root -p
13、设置修改mysql密码
上面我们在配置文件中写了skip-grant-tables 是跳过密码验证不用登录的,我们可以通过如下操作设置密码.
- 进入MySql控制台(直接按回车,这时不需要输入root密码。)
/usr/local/share/soft/mysql/bin/mysql -uroot -p
- 切换到mysql数据库
mysql>use mysql;
- 修改mysql数据库中root的密码
mysql> ALTER USER 'root'@'%'IDENTIFIED BY 'Aw5332302@';
- 刷新mysql权限
mysql>flush privileges;
如果执行修改密码时报错:
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables
这个时候只需要刷新一下权限即可:
mysql>flush privileges;
然后按照上面修改密码的方式,再次尝试进行修改密码,即可修改成功。
- 退出
mysql>exit;
- 再次vi /etc/my.cnf。把skip-grant-tables删除掉。保存退出。完成MySql Root密码修改
版本不同修改密码的语句可能不同,如果有一下错误可进行其他方式修改密码:
报错信息:
ERROR 1054 (42S22): Unknown column ‘password’ in ‘field list’
原因:
是从mysql 5.7开始,password字段被替换为了authentication_string
修改:
update user set authentication_string=password(‘填入新密码”’) where user=‘root’;
ALTER USER ‘root’@'localhost’IDENTIFIED BY ‘Zw55350002@’;
14、配置mysql数据库远程访问
- 切换数据库
mysql> use mysql;
- 查询信息
mysql> select user,host from user;
- 更改信息
mysql> update user set host='%' where user = 'root';
- 刷新权限,查看修改结果
mysql>flush privileges;
- 退出
mysql>exit;