0)
卸载系统自带的Mariadb数据库,避免冲突
一)
我安装的版本是:mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
下载地址:https://downloads.mysql.com/archives/community/
在本机上下载好MySQL版本之后通过pscp.exe上传到服务器,我在服务器的 /usr/local 里面新建文件夹java,把MySQL上传到该文件夹里面:通过DOS命令进入pscp.exe目录里,输入命令:pscp d:/temp/mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz [email protected]:/usr/local/java 回车后输入Linux账户密码即可。
在Linux目录下查看是否已上传的文件:cd /usr/local/java 查看:ls
将上传的安装包解压到该目录下:tar -zxvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz -C /usr/local/java
将解压后的文件重命名为mysql,命令:mv mysql-5.7.20-linux-glibc2.12-x86_64 mysql。我解压了两遍导致同时出现了重命名前后两个文件,不过没关系,我将多余的删掉了。
三)
安装依赖:yum install -y cmake make gcc gcc-c++ libaio ncurses ncurses-devel
添加系统mysql组:groupadd mysql
添加mysql用户: useradd -r -g mysql mysql
查看:id mysql
四)
进入mysql目录:cd /usr/local/java/mysql
修改当前目录拥有者为mysql用户:chown -R mysql:mysql ./
安装数据库:bin/mysqld --initialize --user=mysql --basedir=/usr/local/java/mysql --datadir=/usr/local/java/mysql/data
回车后最后一行root@localhost:*****生成的是临时密码,记住一下。
【注:如果看到报错①:bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory 解决方法:yum -y install numactl
报错②:bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
解决方法:yum install -y libaio】
执行以下命令创建RSA private key:
bin/mysql_ssl_rsa_setup --datadir=/usr/local/java/mysql/data
修改当前目录拥有者为mysql用户:chown -R mysql:mysql ./
修改当前data目录拥有者为mysql用户:chown -R mysql:mysql data
五)
命令:vim /etc/my.cnf 打开etc文件夹下的my.cnf文件
按 i 进入编辑模式,输入以下内容:
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
basedir=/usr/local/java/mysql
datadir=/usr/local/java/mysql/data
socket=/tmp/mysql.sock
#不区分大小写
lower_case_table_names = 1
#不开启sql严格模式
sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
log-error=/var/log/mysqld.log
pid-file=/usr/local/java/mysql/data/mysqld.pid
然后按Esc键退出编辑模式,输入:wq命令,表示保存并退出。
添加开机启动项:cp /usr/local/java/mysql/support-files/mysql.server /etc/init.d/mysqld
进入mysqld文件:vim /etc/init.d/mysqld
找到如图下两个位置:这两个位置本来=号右边是空的,添加配置:
basedir=/usr/local/java/mysql
datadir=/usr/local/java/mysql/data
六)
启动MySQL:service mysqld start
加入开机启动:chkconfig --add mysqld
七)
登录mysql:mysql -uroot -p
网上都说如果这一步出现错误的话,
就添加软连接:ln -s /usr/local/java/mysql/bin/mysql /usr/bin
但是我添加了还是一样的错误,后来发现我的/usr/bin里面的mysql文件是空的,然后我把它删除后重新拷贝了一份就好了。
登陆之后,修改初始化密码:ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
授权权限:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
刷新权限:FLUSH PRIVILEGES;
八)
使用navicat.exe远程连接mysql
首先查看防火墙是否开启(centOS7默认使用firewall作为防火墙):firewall-cmd --state
如果防火墙是打开的,那就要查看已经开发的端口号:firewall-cmd --list-ports
开放新的端口:firewall-cmd --zone=public --add-port=3306/tcp --permanent
注:–zone #作用域
–add-port=80/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效
然后重启防火墙:firewall-cmd --reload ,再次查看开发端口会发现3306已经开放了。
但是如果只是测试的话,可以关闭防火墙:systemctl stop firewalld,就不用那么麻烦了
然后可以直接用navicat远程连接mysql