Linux安装mysql5.7.20
服务器环境:centos7.1
- mysql5.7的tar包:百度网盘地址
- 操作之如果有默认数据库马瑞DB前先移除mariadb
yum -y remove mari*
rm -rf /var/lib/mysql/*
-
使用ftp工具把tar包传输到usr/local/目录下
推荐工具Xftp 下载地址 解压tar包
tar -zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
- 更改文件名称
mv mysql-5.7.22-linux-glibc2.12-x86_64 mysql
- 创建用户和用户组并赋予权限
groupadd mysql
useradd -r -g mysql mysql
chown -R mysql:mysql mysql/
- 安装和初始化数据库
cd mysql
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --lc_messages_dir=/usr/local/mysql/share --lc_messages=en_US
如果无错误继续,出现如下错误的
报错信息:bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
解决办法:
yum update
yum install -y libaio
- 获取初始登录密码
执行上一步操作后会在命令行输出 root@localhost: gFamcspKm2+u localhost: 后面的这一串便是你首次登陆mysql需要的初始密码
如下图:
- 配置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=/tmp/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
- 启动服务
cd /usr/local/mysql/bin/
./mysqld_safe --user=mysql &
- 设置开机启动
进入 /usr/local/mysql文件夹
cd /usr/local/mysql/support-files
cp mysql.server /etc/init.d/mysql
- 使用service mysqld命令启动/停止服务
service mysql start/stop/restart
实在不行,用这个:
sudo ./support-files/mysql.server start
注意,5.7版本往上修改密码:
mysql -uroot -p你的密码
use mysql
update mysql.user set authentication_string=password('123456') where user='root'
全局使用mysql
ln -s /usr/local/mysql-5.7.22/bin/mysql /usr/bin
新建用户远程连接mysql数据库
grant all on *.* to admin@'%' identified by '123456' with grant option;
flush privileges;
允许任何ip地址(%表示允许任何ip地址)的电脑用admin帐户和密码(123456)来访问这个mysql server。
注意admin账户不一定要存在。
支持root用户允许远程连接mysql数据库
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
flush privileges;
- 可能出现的错误搜集
- [x] 解决“ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111)”
rm -rf /tmp/mysql.sock
cd /usr/local/mysql
sudo ./support-files/mysql.server start
mkdir /var/run/mysqld/
chown -R mysql.mysql /var/run/mysqld/
- [x] mysql> use mysql
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
SET PASSWORD = PASSWORD('123456');
Query OK, 0 rows affected, 1 warning (0.00 sec)
- [x] 启动异常["ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)"]
解决办法:mysql服务未启动,启动就好了.
- [x] ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
alter user user() identified by "123456";
-[x]服务器重启后连接mysql出现ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/data/mydata/mysql.sock' (111)类似
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
basedir=/usr/local/mysql-5.7.22
datadir=/usr/local/mysql-5.7.22/data
socket=/tmp/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/data/mydata/mysqld.pid
bind-address=0.0.0.0
socket = /data/mydata/mysql.sock
[client]
socket = /data/mydata/mysql.sock
把mysqld.pid的文件换个其他文件夹就行了