1.下载安装包
【下载通用版】https://dev.mysql.com/downloads/mysql/
[root@localhost ~]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.21-linux-glibc2.12-x86_64.tar
[root@localhost ~]# ls
anaconda-ks.cfg mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
[root@localhost ~]# tar -xvf mysql-5.7.21-linux-glibc2.12-x86_64.tar
[root@localhost ~]# tar -zxvf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
[root@localhost ~]# mv mysql-5.7.21-linux-glibc2.12-x86_64 /usr/local/mysql
2.添加一个mysql标准组
[root@localhost ~]# groupadd mysql
3.添加mysql用户并加到mysql组中
[root@localhost ~]# useradd -g mysql mysql
4.将mysql的所有者,所属组设置给mysql
[root@localhost ~]# cd /usr/local/
–将mysql目录访问权限赋为myql用户
[root@localhost local]# chown -R mysql mysql/
–改变mysql目录的用户组属于mysql组
[root@localhost local]# chgrp -R mysql mysql/
5.创建my.ini配置文件
[root@localhost local]# vim /etc/my.cnf
添加文件内容:
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
#sql_mode="ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
#sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
sql_mode='STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
user=mysql
character_set_server=utf8
init_connect='SET NAMES utf8'
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
#错误日志路径
log-error=/usr/local/mysql/log/mysqld.log
#pid-file=/var/run/mysqld/mysqld.pid
#pid-file=/usr/local/mysql/mysqld.pid
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
#主从用到
server-id=1
#开启bin-log日志
log-bin=mysql-bin
#声明2进制日志的文件格式 mixed/row/statement
binlog-format=mixed
#bin-log日志存储多少天
expire_logs_days=5
[mysqld_safe]
#log-error=/var/log/mariadb/mariadb.log
#pid-file=/var/run/mariadb/mariadb.pid
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
创建日志文件:
[root@localhost ~]# mkdir -p /usr/local/mysql/log/
[root@localhost ~]# touch /usr/local/mysql/log/mysqld.log
[root@localhost ~]# chown -R mysql /usr/local/mysql/log/mysqld.log
[root@localhost ~]# chgrp -R mysql /usr/local/mysql/log/mysqld.log
[root@localhost ~]# chmod -R 777 /usr/local/mysql/log/
6.初始化数据库
[root@localhost ~]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --lc_messages_dir=/usr/lo
cal/mysql/share --lc_messages=en_US
查看初始密码
[root@localhost ~]# less /usr/local/mysql/log/mysqld.log
最后一行:root@localhost: 这里就是初始密码
7.启动服务
[root@localhost ~]# /usr/local/mysql/support-files/mysql.server start
Starting MySQL.. SUCCESS!
如果提示下面错误【没有错误可以忽略】
》》》》》
./support-files/mysql.server: line 239: my_print_defaults: command not found
./support-files/mysql.server: line 259: cd: /usr/local/mysql: No such file or directory
Starting MySQL ERROR! Couldn’t find MySQL server (/usr/local/mysql/bin/mysqld_safe)
[root@localhost ~]# cd /usr/local/mysql/
[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@localhost mysql]# chmod 755 /etc/init.d/mysqld
vi /etc/init.d/mysqld
将66-73行/usr/local/修改为/data/
修改前
then
basedir=/usr/local/mysql
bindir=/usr/local/mysql/bin
if test -z "$datadir"
then
datadir=/usr/local/mysql/data
fi
sbindir=/usr/local/mysql/bin
libexecdir=/usr/local/mysql/bin
else
修改后,根据你的实际目录修改
then
basedir=/data/mysql
bindir=/data/mysql/bin
if test -z "$datadir"
then
datadir=/data/mysql/data
fi
sbindir=/data/mysql/bin
libexecdir=/data/mysql/bin
else
启动
service mysqld start
如果提示Starting MySQL.Logging to ‘/data/mysql/data/MyServer.err’.
不管它就行,以后重启就不会提示了
》》》》》》》
8.进入数据库
[root@localhost mysql]# /usr/local/mysql/bin/mysql -u root -p
Enter password:
设置密码
mysql> set password=password('123456ok');
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> grant all privileges on *.* to root@'%' identified by '123456ok';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
9.电脑链接不上mysql
报错:1130-host … is not allowed to connect to this MySql server
1。 改表法。
可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从"localhost"改称"%"
mysql -u root -pvmwaremysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
- 授权法。
例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。
mysql>GRANT ALL PRIVILEGES ON *.* TO '你的账号'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;
如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码
mysql>GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;
如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器的dk数据库,并使用mypassword作为密码
mysql>GRANT ALL PRIVILEGES ON dk.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;
我用的第一个方法,刚开始发现不行,在网上查了一下,少执行一个语句
mysql>FLUSH RIVILEGES
使修改生效.就可以了
另外一种方法,不过我没有亲自试过的,在youkuaiyun.com上找的,可以看一下.