在服务器上安装MySQL服务,用于存储持久化数据,并设置成开机自启,避免服务器重启后需要人为进行启动操作。下载安装包:MYSQL 5.7

1、卸载Linux系统中自带的mariadb

# 查看系统中mariadb版本以及安装文件 	
	rpm -qa|grep maridb
	# 卸载mariadb(“*”指mariadb文件) 
	rpm -e --nodeps * 	
	# 删除配置文件(相关配置文件)
	如:rm -rf /etc/my.cnf

2、检查MySQL是否还存在

rpm -qa|grep maridb

3、查看用户和组是否存在

cat /etc/group | grep mysql 	
	cat /etc/passwd | grep mysql 	
	# 如果不存在则新建mysql用户和组

4、上述操作确保安装MySQL的环境是无干扰的
5、新建mysql安装目录:

mkdir /home/mysql

6、进入安装目录:

cd /home/mysql

7、上传MySQL安装包:

rz

8、解压安装文件:

tar -zxvf mysql-<version>.tar.gz

9、将解压出来的文件,重命名成“mysql”:

mv mysql-<version>/ mysql

10、更改mysql安装目录的所属用户和组

chown -R mysql mysql/ 	chgrp -R mysql mysql/
	# 进入mysql文件
	cd mysql/	
	# 查看是否存在数据存储文件data,如果不存在则创建,存在则忽略此项操作 	
	mkdir  data 	
	chown -R mysql:mysql data

11、进入mysql安装目录:/home/mysql/mysql,安装mysql

1、./scripts/mysql_install_db --user=mysql 
	2、/usr/local/mysql/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/mysql --datadir=/home/mysql/data 
    #(MySQL版本在5.7之前的安装命令), basedir / datadir替换成具体的目录 	
    # 可能会报异常:FATAL ERROR: please install the following Perl modules before executing
	解决方案: yum -y install autoconf

12、执行上一步操作后,生成文件mysql配置文件my.cnf,编辑my.cnf

vi my.cnf 
	
	[client]    
	socket=/var/lib/mysql/mysql.sock 	 	[mysql]
	socket=/var/lib/mysql/mysql.sock 	# 客户端字符编码
	default-character-set=utf8 	 	[mysqld]
	socket=/var/lib/mysql/mysql.sock 	#mysql默认端口 	port=3306 	
	
	#mysql安装目录 	
	basedir=/home/mysql/mysql 	
	# mysql数据存放目录
	datadir=/home/mysql/mysql/data 	
	# 设置最大连接数 	
	# max_connections=200 	
	# 数据库字符编码 	
	character-set-server=utf8 	
	# 设置默认存储引擎
	default-storage-engine=INNODB 	
	lower_case_table_names=1
	max_allowed_packet=16M 	
	explicit_defaults_for_timestamp=true
	#指定错误日志路径 	
	log-error = /home/mysql/mysql/log/error.log 	
	#指定PID文件路径
	pid-file = /home/mysql/mysql/data/mysql/mysql.pid 	 	
	[mysql.server]
	user=mysqlcd 	
	basedir=/home/mysql/mysql
	sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

13、设置开机自启动服务

# 如果rc.d,则直接输入
	/etc/init.d/mysqld 	
	cp ./support-files/mysql.server  /etc/rc.d/init.d/mysqld 	 	
	chmod +x /etc/rc.d/init.d/mysqld
	chkconfig --add mysqld 	chkconfig --list mysqld 	
	# 命令输出结果:mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off 	
	# 表明mysqld服务已经生效,在2/3/4/5运行级别随系统启动而自动启动,以后可以使用service命令控制服务启动和停止

14、修改 /etc/init.d/mysqld 文件内的basedir 和 datadir

basedir	默认目录是”/usr/local/mysql” 改成实际安装路径 ”/home/mysql/mysql”
	datadir	默认目录是”/usr/local/mysql/data” 改成实际安装路径 “/home/mysql/mysql”

15、配置环境变量:

vi /etc/profile 	
	export PATH=$PATH:/home/mysql/mysql/bin
	# 保存并退出 	
	<esc> + :wq
	# 重新加载 	
	source /etc/profile

16、启动mysql服务

service mysqld  start 	
	启动可能会报的异常: 	
	“Starting MySQL.. ERROR! The server quit without updating PID file (/home/mysql/mysql/data/mysql/mysql.pid)”,
	分析:多数情况下则是自定义存储文件的权限不够,需要指定用户和用户组: 
		chown -R mysql:mysql   
		<安装MySQL过程中,所有自定义的文件目录>

17、登录mysql

mysql -u root -p  	# 默认没有密码,直接回车即可

18、在此处可能会报错:

1、提示“ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)”
		原因是:在启动时系统会默认启动“/tmp/mysql.sock”,而不是启动my.cnf中配置socket	的	“/var/lib/mysql/mysql.sock”
	
		解决方式:将socket启动文件“/var/lib/mysql/mysql.sock”指向“/tmp/mysql.sock”
	
	执行命令: 	ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock 	
	2、提示“bash:mysql: command not found...” 
		原因是:没有在/usr/bin目录下生成MySQL命令 
		解决方案:ln -s    
		<具体MySQL的安装目录下bin文件夹的mysql> /usr/bin 
		例如:ln -s /usr/local/mysql/bin/mysql /usr/bin

19、重启服务:

service mysqld restart

20、执行登录:

mysql -u root -p 	# 目前root用户默认是无密码登录的,为了安全则需要设置密码 	
	use mysql; 	
	# (mysql5.7版本之前)
	1、update user set password = password(‘设置的密码’) where user = ‘root’;	
	# (mysql5.7版本之后)
	2、update user set authentication_string=password(‘设置的密码’) where user = ‘root’;
	# 退出 	exit;

21、重启服务:

service mysqld restart
	# 之后root登录则会提示需要输入password

22、开启远程连接:

# 第一个“*”表示所有数据库名(也可指定具体的数据库名) 	
	# 第二个“*”表示所有数据库表名(也可指定具体的数据库表名) 	
	# “%”表示允许所有的IP地址访问到mysql;同时也可以将“%”换成具体的IP地址 	
	grant all privileges on *.* to root@'%' identified by 'root' with grant option; 	
	flush privileges;