内容转载自:https://www.cnblogs.com/haima/p/12276063.htmlhtml
1.系统约定
安装文件下载目录:/data/software
Mysql目录安装位置:/usr/local/mysql
数据库保存位置:/usr/local/mysql/data
日志保存位置:/tmp/mysql_error.logmysql
2.下载mysql(这里下载的是預编译好的二进程mysql安装包)
在官网:https://dev.mysql.com/downloads/mysql/
中,选择如下版本的mysql下载:linux
根据本身系统的版本选择32或者64位,这里我选择64位系统的sql
建议:在windows上使用迅雷下载,速度很快,而后用工具(Xftp)上传到 /usr/local/src目录下;数据库
或者直接下载到服务器上
复制下载地址wget+地址 (默认下载到当前目录,本身找个目录存)ubuntu
cd /usr/local/src wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
3.下载完成,解压出来
tar zxvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
vim
4.移到解压好的文件夹到/usr/local/mysql
mv mysql-5.7.20-linux-glibc2.12-x86_64 /usr/local/mysql cd /usr/local/mysql mkdir data //新建文件夹data mkdir mysql-files groupadd mysql //新建mysql组 useradd -g mysql mysql chown -R mysql:mysql /usr/local/mysql //修改MySQL安装目录和data数据中心的权限: cat /etc/passwd //查看用户和分组信息:查看用户列表 cat /etc/group //查看用户组列表 chown -R mysql . //改变目录属有者 要在/usr/local/mysql目录下 chgrp -R mysql .
5.修改mysql配置文件
vim /etc/my.cnf
windows
[mysql]
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
[mysqld]
port = 3306
socket=/var/lib/mysql/mysql.sock
basedir=/usr/local/mysql datadir=/usr/local/mysql/data max_connections=200 character-set-server=utf8 default-storage-engine=INNODB #lower_case_table_name=1 max_allowed_packet=16M log_error=/tmp/mysql_error.log sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
mkdir /var/lib/mysql
chmod 777 /var/lib/mysqlcentos
6.配置参数,获取密码的命令:
执行初化数据库命令:bash
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
若是报错缺乏插件,去百度libnuma.so.1搜一下,发现缺乏 numactl ,去下载安装上 yum -y install numactl
再执行上面的初化数据库命令
启动成功后,看一下data文件目录里已经有数据了ll data
此处须要注意记录生成的临时密码,如上文结尾处的
若是没有显示密码,就使用下面的命令查看密码:
cat /tmp/mysql_error.log
bin/mysql_ssl_rsa_setup --datadir=/usr/local/data/mysql
//设置ssl能够不用执行
7.启动MySQL服务器mysqld
root@haima-PC:~# /usr/local/mysql/support-files/mysql.server start Starting MySQL .Logging to '/tmp/mysql_error.log'. . ok
以上启动成功了.
安装时可能出现的三种报错:
a.mysql服务已经启动了,再次启动会报错.
若是像上图一下报错,就执行下面的操做,杀死进程,再执行,重启
ps -aux|grep mysql
kill -9 1512 /usr/local/mysql/support-files start`
b.若是仍是不行,一直启动不了,就把data文件夹删除了,再从新建一下,
cd /usr/local/mysql rm -rf /data mkdir data //新建的data文件夹改权限改成group chown -R mysql:mysql /usr/local/mysql/data //改权限命令 bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data //再初始化一下 cat /tmp/mysql_error.log //查看一下密码 ./support-files/mysql.server start //再启动,就ok了
c.若是仍是不能够,就把 安装的/usr/local/mysql
文件夹删除了,到/user/local/src里把mysql文件再解压出来再复制到/usr/local文件夹下,
把/etc/my.cnf删除了,再从新建一下, 查一下若是有进程,杀死mysql进程, 重复 上面b的方法
9.设置好环境变量后,从新加载一下就能够生效了
编辑profile文件vim /etc/profile
export PATH=$PATH:/usr/local/mysql/bin
或者
echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile /usr/local/mysql/support-files //若是是ubuntu加入这一句 source /etc/profile //刷新生效
链接数据库
mysql -uroot -p密码
//链接一下mysql
若是提示下面的错误:就用navicat连联连,再修改密码
Your password has expired. To log in you must change it using a client that supports expired passwords.其实只须要修改密码就能够了
alter user 'root'@'localhost' identified by 'whm2416@qq.com'; //修改帐号密码 use mysql create user 用户名@'%' identified by '密码'; //建立帐号 haiama用户名字 grant all privileges on *.* to 用户名@'%' with grant option; //受权 FLUSH PRIVILEGES; //刷新 select version(); //查看版本 quit / exit //退出
设置开机启动:
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql chkconfig --add mysqld chkconfig mysql on
启动service mysql start
//centosmysql.server start
//ubuntu
重启:service mysql restart
//centosmysql.server restart
//ubuntu
中止:service mysql stop
//centosmysql.server stop
//ubuntu
看启动日志:cat mysql_error.log
查看mysql状态:service mysql status
中止mysql服务service mysql stop
或者杀进程:killall -9 mysql
若是没有安装killall能够使用yum安装yum provides killall
查出来psmisc-22.20-11.el7.x86_64
yum -y install psmisc-22.20-11.el7.x86_64
killall -9 mysql
忘记密码,初使化密码(须要提早备份数据,重置后,数据就都没有了)
killall -9 mysql //中止mysql软件
pkill -9 mysql //同上面的命令中止mysql软件
rm -rf /usr/local/mysql/data //删除data目录 mkdir data //新建data文件夹 chown -R mysql.mysql /usr/local/mysql //添加权限 bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data //初使化密码,保存一下密码 cat /tmp/mysql_error.log //查看密码 mysql_ssl_rsa_setup //设置ssl service mysql start //启动 mysql -uroot -p密码 //登录 alter user 'root'@'localhost' identified by 'whm****@**.com'; //修改帐号密码 更改root密码,须要带数字,大写字母,小写字母,特殊符号 flush privileges;
一、修改 /etc/my.cnf,在 [mysqld] 小节下添加一行:skip-grant-tables=1
这一行配置让 mysqld 启动时不对密码进行验证
vim /etc/my.conf
加一行:skip-grant-tables=1
二、重启 mysqld 服务:/usr/local/mysql/support-files/mysql.server restart
三、使用 root 用户登陆到 mysql
:mysql -u root
alter user 'root'@'localhost' identified by 'whm****@***.com'; //修改帐号密码 FLUSH PRIVILEGES; //刷新 quit
注意:若远程工具链接不上,请用 iptables -F
命令来清除防火墙规则
MySql拓展
更改root密码,须要带数字,大写字母,小写字母,特殊符号
例:你的新密码为1qaz2wsx@!XLD
# SET PASSWORD = PASSWORD('你的新密码'); # 上面的方式不行就用下面这个 ALTER USER USER() IDENTIFIED BY '你的新密码'; # 设置密码永不过时 ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER; # 刷新MySQL的系统权限相关表 flush privileges;
根据我的需求,设置数据库用户在全部ip下以及在本地可访问,如下用root用户作演示
grant all privileges on *.* to root@"%" identified by "你的密码" with grant option; //给把全部的ip地址开权限 grant all privileges on *.* to root@"localhost" identified by "你的密码" with grant option; grant all privileges on *.* to 'root'@'113.46.90.222' identified by '12345' with grant option; //给指的ip地址开权限 grant all privileges on *.* to 'root'@'113.46.*.*' identified by '12345' with grant option; //给指的ip段开权限 flush privileges;
注意:若远程工具链接不上,请用 iptables -F 命令来清除防火墙规则
新建用户
CREATE USER 'xld_test'@'%' IDENTIFIED BY '你的密码';
用户受权
添加用户权限: GRANT ALL ON databasename.tablename TO 'xld_test'@'%';
撤销用户权限: REVOKE ALL ON databasename.tablename TO 'xld_test'@'%';
删除用户及权限 :drop user 'xld_test'@'%';