进入命令:mysql -uroot -proot
退出:输入exit命令即可
5.6版本安装包
mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
my.cnf(mysql配置文件)
在root下创建mysql用户:useradd mysql
安装目录
tar -xvf mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
移动(1.迁移到/usr/local下 2./usr/local/mysql不能存在)
mv mysql-5.6.39-linux-glibc2.12-x86_64 /usr/local/mysql
创建数据目录:mkdir -p /home/mysql3306/mysql3306
创建日志目录:mkdir -p /home/mysql3306/logs
赋权:chown mysql.mysql -R /home/mysql3306
修改配置文件:innodb_buffer_pool_size = 256M(大小根据实际情况而定)
复制配置文件:cp /soft/my.cnf /etc/
初始化mysql(初始化一些mysql的系统表结构) (只需要做一次就ok)
/usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --user=mysql
初始化完成后
[root@master /home/mysql3306/mysql3306]$ls
ibdata1 ib_logfile1 mysql-bin.000001 mysql-bin.index test
ib_logfile0 mysql mysql-bin.000002 performance_schema
启动mysql服务
/usr/local/mysql/bin/mysqld_safe --user=mysql &
& 此符号代表后台运行
[root@1master /home/mysql3306/mysql3306]$ps -ef|grep mysql (查看mysql是否启动服务)
root 4351 3849 0 17:36 pts/1 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --user=mysql
mysql 5234 4351 46 17:36 pts/1 00:00:07 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/home/mysql3306/mysql3306 --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/home/mysql3306/logs/mysql-error.log --open-files-limit=65535 --pid-file=/home/mysql3306/mysql.pid --socket=/tmp/mysql3306.sock --port=3306
root 5258 3849 0 17:36 pts/1 00:00:00 grep --color=auto mysql
配置环境变量
vim /etc/profile
export JAVA_HOME=/usr/local/jdk
export HADOOP_HOME=/home/hadoop/install/hadoop-2.7.4
export MYSQL_HOME=/usr/local/mysql
export PS1="[\u@\h \w]\$"
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$MYSQL_HOME/bin
生效环境变量
source /etc/profile
rm -rf /usr/bin/mysql*
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
mysql mysql的客户端命令
mysqld mysql的server端服务
客户端使用
/usr/local/mysql/bin/mysql
-u 用户名
-p 密码
-h IP
-P 端口
-S socket文件(只有linux下存在)
第一次启动后,直接进入
/usr/local/mysql/bin/mysql
由于使用了参数
/usr/local/mysql/bin/mysql -uroot -proot -S /tmp/mysql3306.sock
进入命令:mysql -uroot -proot
退出:输入exit命令即可
mysql> select user,host,password from mysql.user;
+------+-----------+----------+
| user | host | password |
+------+-----------+----------+
| root | localhost | |
| root | master | |
| root | 127.0.0.1 | |
| root | ::1 | |
| | localhost | |
| | master | |
+------+-----------+----------+
6 rows in set (0.00 sec)
删除没有用的用户
delete from mysql.user where user='';
delete from mysql.user where host='::1' or host='master';
delete from mysql.user where host='127.0.0.1';
mysql> select user,host,password from mysql.user;
mysql> select user,host,password from mysql.user\G;
(自己观察两个语句的区别)
赋权操作(此语句适合5.6 5.7版本用,8.0会报错)
mysql>grant all on *.* to root@'%' identified by 'root' ;
mysql>grant all on *.* to root@'localhost' identified by 'root' ;
刷新权限表:mysql>flush privileges;
mysql> select user,host,password from mysql.user;查看一下跟之前的区别
mysql>grant all on *.* to root@'%' identified by 'root' with grant option;
mysql>grant all on *.* to root@'localhost' identified by 'root' with grant option;(一般只赋本地)
mysql> select user,host,password from mysql.user;查看一下跟之前的区别
(字段解释说明:all 代表所有权限
*.* 第一个*库代表所有数据库 第二个*表代表所有表,这个是所有库的所有表。
root@'%' root用户名,如果有直接赋权,如果该用户没有直接创建赋权
% 哪个网段允许登录我的mysql server,可以这样写192.168.2.%,也可以直接指定谁可以方问192.168.2.11
with grant option 代表允许该用户给其他用户赋权)
先在1slave0测试:
[root@1slave0 /home/mysql3306/mysql3306]$mysql -uroot -proot -h 192.168.97.60 -P 3306
如果没有成功去master执行:
[root@1master /home/mysql3306/mysql3306]$scp usr/local/mysql/bin/mysql 1slave0:/user/bin
返回1slave0测试:
[root@1slave0 /home/mysql3306/mysql3306]$mysql -uroot -proot -h 192.168.97.60 -P 3306
mysql>show databases;
如果想删除mysql,重新安装执行
pkill -9 mysql
删除目录
rm -rf /home/mysql3306
rm -rf /usr/local/mysql
停掉MySQL服务
[root@1master /home/mysql3306/mysql3306]$usr/local/mysql/bin/mysqladmin -uroot -proot shutdown
修改:在usr/local/mysql/bin目录下执行./mysqladmin -uroot -proot shutdown
停掉后查看一下是否成功
[root@1master /home/mysql3306/mysql3306]$ps -ef|grep mysql
停掉之后如果想重启mysql执行
[root@1master /home/mysql3306/mysql3306]$/usr/local/mysql/bin/mysqld_safe --user=mysql &
检查一下是否有问题
[root@1master /home/mysql3306/mysql3306]$ps -ef|grep mysql
进入mysql
[root@1master /home/mysql3306/mysql3306]$mysql -uroot -proot -S /tmp/mysql3306.sock
使用mysql 注意权限问题(mysql可以链接)
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
权限问题报错
ERROR 1045 (28000): Access denied for user 'root'@'192.168.97.xx' (using password: YES)
1.第一个就是'root'@'192.168.97.xx' 在数据库里面有没有赋权
2.输入的密码对不对