解决问题 ,借鉴了不少大神的记录,这里不过多解释缘由 直接上方案,对应的缘由,会把大神的方案连接拿过来。须要的同窗能够本身看mysql
准备
2、 上传至linux —> home目录下(xshell工具)web
# cd
# rz
3、开始安装
一、添加mysql组和mysql用户,用于设置mysql安装目录文件全部者和所属组sql
# groupadd mysql
# useradd -r -g mysql mysql
/* useradd -r参数表示mysql用户是系统用户,不可用于登陆系统*/
/* useradd -g参数表示把mysql用户添加到mysql用户组中*/
二、安装在 /usr/local/ 下vim
# cd /usr/local
/*解压至 /usr/local */
# tar -zxvf ~/mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz
/*为了方便使用 重命名为mysql*/
# mv mysql-5.7.25-linux-glibc2.12-x86_64/ mysql
# cd mysql
/*更改mysql目录所属的组和用户。更改权限*/
# chown -R mysql .
# chgrp -R mysql .
# ls
发现有这些文件
三、执行mysql_install_db脚本,对mysql中的data目录进行初始化并建立一些系统表格socket
# bin/mysql_install_db --user=mysql
/*报错 以下*/
2019-03-21 19:08:30 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize
2019-03-21 19:08:30 [ERROR] The data directory needs to be specified.
/*解决 须要指定data目录*/
# mkdir data
这里说 mysql_install_db 命令已是弃用的,建议切换到mysqld --initialize命令ide
/*使用 mysqld --initialize 进行建立*/
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
/*若提示如下信息 须要将 data目录删除 从新建立*/
2019-03-21T10:09:38.872437Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2019-03-21T10:09:38.873881Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting.
2019-03-21T10:09:38.873911Z 0 [ERROR] Aborting
# rm -rf /usr/local/mysql/data
# mkdir /usr/local/mysql/data
会有不少的提示信息svg
2019-03-21T11:18:27.293537Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2019-03-21T11:18:27.443262Z 0 [Warning] InnoDB: New log files created, LSN=45790
2019-03-21T11:18:27.468916Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2019-03-21T11:18:27.521886Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 0cb62560-4bcb-11e9-8d47-fa163eb37325.
2019-03-21T11:18:27.522311Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2019-03-21T11:18:27.522706Z 1 [Note] A temporary password is generated for root@localhost: PreUh?epL8Ps
系统给出的初始密码 root@localhost: PreUh?epL8Ps工具
四、将mysql/目录下除了data/目录的全部文件,改回root用户全部,mysql用户只需做为mysql/data/目录下全部文件的全部者
# chown -R root .
# chown -R mysql data
因为此版本没有 my-default.cnf 文件 因此不考虑
五、将mysqld服务加入开机自启动项 并设置可执行权限
# cp ./support-files/mysql.server /etc/init.d/mysql
# chmod +x /etc/init.d/mysql
五、 把mysql注册为开机启动的服务 并查看是否添加成功
# chkconfig --add mysql
# chkconfig --list mysql
mysql 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
六、开启或关闭mysql服务
#/etc/init.d/mysql start 或者 service mysql start 或者 bin/mysqld_safe&
#/etc/init.d/mysql stop 或者 service mysql stop 或者 bin/mysqladmin -uroot -p
七、加入环境变量
# vim /etc/profile
/*加入下面这句话 保存退出*/
export PATH=$PATH:/usr/local/mysql:/usr/local/mysql/bin
/*使其修改生效*/
# source /etc/profile
/*查看是否成功设置*/
# echo $PATH
八、登陆mysql
# mysql -uroot -p生成的密码
发现这里报错
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
解决方法:先肯定文件是否存在
# find / -name mysql.sock /*没有找到*/
先肯定如下目录是否存在 没有则建立
# ls /var/lib/mysql
ls: cannot access /var/lib/mysql: No such file or directory
/*建立并修改权限*/
# mkdir /var/lib/mysql
# chmod 777 /var/lib/mysql
完成后重启
# service mysql restart
/*报错*/
ERROR! MySQL server PID file could not be found!
Starting MySQL.. ERROR! The server quit without updating PID file (/usr/local/mysql/data/*****.pid).
/*输入如下命令 查看缘由*/
# systemctl status mysql.service
/*查看error信息*/
# vim /usr/local/mysql/data/*****.err
..........
2019-03-22T01:26:29.811333Z 0 [ERROR] Can't start server: Bind on TCP/IP port: Address already in use
2019-03-22T01:26:29.811336Z 0 [ERROR] Do you already have another mysqld server running on port: 3306 ?
2019-03-22T01:26:29.811340Z 0 [ERROR] Aborting
..........
/*解决办法 1 */
# ps -ef | grep mysql
将存在的mysql进程 kill 进程号
/*解决方法*/
# mkdir /var/run/mysqld
# chmod 777 /var/run/mysqld/
# service mysql start
九、登陆成功后修改初始密码才能正常使用
/*错误以下*/
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
/*修改命令*/
# alter user user() identified by "新密码";
十、使用mysql时 若是输入中文不显示
能够查看linux系统的字符集
# env
是否有 LANG配置
添加LANG 配置便可
# export LANG=en_US.UTF-8