1.服务器是阿里云的centos7.4
jdk, tomcat和mysql都是tar包解压安装的
2.jdk1.8配置
了解wget命令的使用,如下
wget 所需文件的下载地址
了解tar解压命令,如下
tar -zvxf 需要解压的文件.tar.gz
我解压的时候报了下面这个错:
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
原因是:我在线下载下来的安装包本身就是损坏的
怎么确定是否损坏呢?
命令:ls -lht
查看文件大小
并且与Windows上存放着的安装包的大小进行了比较。
果然是安装包本身就存在问题,重新下载就好了。
具体见:https://www.cnblogs.com/llxx07/p/6409384.html
然后就是配置jdk的环境了,使用vim编辑profile文件 输入:vim /etc/profile
向文件里面追加以下内容:
#set java environment
JAVA_HOME=/usr/java/jdk1.8.0_152
JRE_HOME=$JAVA_HOME/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
#注意PATH,一定记着加`$PATH`,不然的话,PATH就会被覆盖
若PATH被覆盖也不用怕:https://blog.csdn.net/u013129944/article/details/53906148
使配置文件生效:source /etc/profile
java -version
查看是否成功
3.tomcat配置
直接用下载并解压,并开放8080端口便可以访问了
我是直接在阿里云控制台里打开加入安全规则打开端口的
http://ip:8080
用service来管理tomcat服务器的启动、关闭、重启、开机启动,见
https://blog.csdn.net/qq_32786873/article/details/78854878
4.mysql8的配置
参考:https://www.cnblogs.com/dadadechengzi/p/6723686.html
#卸载系统自带的Mariadb
[root@hdp265dnsnfs ~]# rpm -qa|grep mariadb
mariadb-libs-5.5.44-2.el7.centos.x86_64
[root@hdp265dnsnfs ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64
#删除etc目录下的my.cnf文件
[root@hdp265dnsnfs ~]# rm /etc/my.cnf
rm: cannot remove ?etc/my.cnf? No such file or directory
#检查mysql是否存在
[root@hdp265dnsnfs ~]# rpm -qa | grep mysql
[root@hdp265dnsnfs ~]#
#检查mysql组和用户是否存在,如无创建
[root@hdp265dnsnfs ~]# cat /etc/group | grep mysql
[root@hdp265dnsnfs ~]# cat /etc/passwd | grep mysql
#创建mysql用户组
[root@hdp265dnsnfs ~]# groupadd mysql
#创建一个用户名为mysql的用户并加入mysql用户组
[root@hdp265dnsnfs ~]# useradd -g mysql mysql
#制定password 为111111
[root@hdp265dnsnfs ~]# passwd mysql
Changing password for user mysql.
New password:
BAD PASSWORD: The password is a palindrome
Retype new password:
passwd: all authentication tokens updated successfully.
#安装到/var
[root@hdp265dnsnfs var]# tar -zxvf mysql-8.0.1.tar.gz
[root@hdp265dnsnfs var]# mv mysql-8.0.1-x86_64/ mysql8
#更改所属的组和用户
[root@hdp265dnsnfs var]# chown -R mysql mysql8/
[root@hdp265dnsnfs var]# chgrp -R mysql mysql8/
[root@hdp265dnsnfs var]# cd mysql58/
[root@hdp265dnsnfs mysql57]# mkdir data
[root@hdp265dnsnfs mysql57]# chown -R mysql:mysql data
在etc下新建配置文件my.cnf,并在该文件内添加以下配置
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
skip-name-resolve
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=/var/mysql8
# 设置mysql数据库的数据的存放目录
datadir=/var/mysql8/data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M
初始化就出问题了
参考:https://www.jb51.net/article/138790.htm
不能使用bin/mysql_install_db --user=mysql --basedir=/var/mysql8/ --datadir=/var/mysql8/data/
按照如下进行初始化:
#bin/mysqld --initialize --user=mysql --datadir=/data/mysql/
#bin/mysql_ssl_rsa_setup
执行./mysqld –initialize 时可能会报如下错误:
./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
原因是没有安装libaio.so.1,安装即可。
执行yum install libaio
搞定
# cp ./support-files/mysql.server /etc/init.d/mysqld
# chown 777 /etc/my.cnf
# chmod +x /etc/init.d/mysqld
# /etc/init.d/mysqld restart
Shutting down MySQL.. SUCCESS!
Starting MySQL. SUCCESS!
#设置开机启动
# chkconfig --level 35 mysqld on
# chkconfig --list mysqld
使用service管理mysql
# chmod +x /etc/rc.d/init.d/mysqld
# chkconfig --add mysqld
# chkconfig --list mysqld
# service mysqld status
SUCCESS! MySQL running (4475)
#export PATH=$PATH:/var/mysql8/bin
#source /etc/profile
对chown和chmod做简单的了解:
chown是更改档案拥有者
chmod是更改文件权限rwx读写执行
语法为:chmod abc file
其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。
r=4,w=2,x=1
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=7。
-rw------- (600) -- 只有属主有读写权限。
-rw-r--r-- (644) -- 只有属主有读写权限;而属组用户和其他用户只有读权限。
-rwx------ (700) -- 只有属主有读、写、执行权限。
-rwxr-xr-x (755) -- 属主有读、写、执行权限;而属组用户和其他用户只有读、执行权限。
-rwx--x--x (711) -- 属主有读、写、执行权限;而属组用户和其他用户只有执行权限。
-rw-rw-rw- (666) -- 所有用户都有文件读、写权限。这种做法不可取。
-rwxrwxrwx (777) -- 所有用户都有读、写、执行权限。更不可取的做法。
具体见:http://justcoding.iteye.com/blog/1978270
密码修改:在my.cnf里添加--skip-grant-tables
就可以跳过密码进入,记得service mysqld restart
将root密码置空
use mysql;
update user set authentication_string='' where user='root';
退出,删除--skip-grant-tables
并重启service mysqld restart
使用 ALTER 修改 root 用户密码
ALTER user 'root'@'localhost' IDENTIFIED BY 'Xpf123@';
具体见:https://blog.csdn.net/xinpengfei521/article/details/80400142
又有问题了,使用navicat连接时报错:
2059 - authentication plugin 'caching_sha2_password' -navicat连接异常
原因:
mysql 8.0 默认使用 caching_sha2_password 身份验证机制
—— 从原来的 mysql_native_password 更改为 caching_sha2_password。
客户端不支持新的加密方式。
解决方案:修改用户的密码和加密方式
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
见:https://blog.csdn.net/u012613251/article/details/80346665
可是,可是还有问题,
mysql> alter user 'root'@'localhost' identified by 'password';
ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'localhost'
mysql> select user ,host from user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| root | % |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
+------------------+-----------+
4 rows in set (0.00 sec)
这里root的host是%
是因为在我们开启MySQL远程访问权限 允许远程连接时,将host改成了%
use mysql;
update user set host='%' where user='root';