mysql(解压在/usr/local/mysql)
删除mariadb:
rpm -qa | grep mariadb rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64
下载mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz并上传至/root/installs:
groupadd mysql --新建一个名称为mysql的用户组 useradd -g mysql mysql --新建一个名称为mysql的用户并放到mysql组里 passwd mysql 123456 --为新建的mysql用户指定密码 cd /usr/local mkdir mysql
#解压到指定目录
cd /root/installs tar -zxvf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz -C /usr/local/ mv mysql-5.6.36-linux-glibc2.5-x86_64 mysql --重命名
#copy一份/usr/local/mysql/support-files/下的my-default.cnf文件到/etc/my.cnf
cp my-default.cnf /etc/my.cnf
#配置my.cnf如下开始:(注意:确保/var/lib/mysql/mysql.sock 的存在,确保mysql用户(一会使用这个用户安装)有权限)
[mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 socket=/var/lib/mysql/mysql.sock [mysqld] # 禁止MySQL对外部连接进行DNS解析,使用这一选项可以消除MySQL进行DNS解析的时间。但需要注意,如果开启该选项, # 则所有远程主机连接授权都要使用IP地址方式,否则MySQL将无法正常处理连接请求 skip-name-resolve #设置3306端口 port = 3306 socket=/var/lib/mysql/mysql.sock # 设置mysql的安装目录 basedir=/usr/local/mysql # 设置mysql数据库的数据的存放目录 datadir=/usr/local/mysql/data # 允许最大连接数 max_connections=200 # 服务端使用的字符集默认为8比特编码的latin1字符集 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB #表名不区分大小写 lower_case_table_names=1 max_allowed_packet=16M #mysql 5.6占用内存400多兆,太大了,配置优化 performance_schema_max_table_instances=600 table_definition_cache=400 table_open_cache=256
#配置my.cnf如下结束
#开始安装
chown mysql:mysql /var/lib/mysql --确保mysql用户有权限写入mysql.sock cd /usr/local/mysql chown -R mysql:mysql ./ 修改当前目录拥有者为mysql用户 (ls -l前后对比) ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --安装数据库
注:若执行以上最后一个命令出现以下问题:
FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db:Data::Dumper
解决方法 :安装autoconf库
命令:
yum -y install autoconf #此包安装时会安装Data:Dumper模块
安装完成重新执行上述最后一个命令。
然后:
chown -R mysql:mysql data 修改当前data目录的拥有者为mysql用户
#结束安装
配置MySQL
1、授予my.cnf最大权限
[root@localhost ~]# chown 777 /etc/my.cnf
设置开机自启动服务控制脚本:
2、复制启动脚本到资源目录
[root@localhost mysql]# cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
3、增加mysqld服务控制脚本执行权限
[root@localhost mysql]# chmod +x /etc/rc.d/init.d/mysqld
4、将mysqld服务加入到系统服务
[root@localhost mysql]# chkconfig --add mysqld
5、检查mysqld服务是否已经生效
[root@localhost mysql]# chkconfig --list mysqld
命令输出类似下面的结果:
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
表明mysqld服务已经生效,在2、3、4、5运行级别随系统启动而自动启动,以后可以使用service命令控制mysql的启动和停止,命令为:service mysqld start和service mysqld stop
6、启动mysqld
[root@localhost mysql]# service mysqld start
7、将mysql的bin目录加入PATH环境变量,编辑 ~/.bash_profile文件
[root@localhost mysql]# vim ~/.bash_profile
在文件最后添加如下信息:
export PATH=$PATH:/usr/local/mysql/bin [root@localhost mysql]# source ~/.bash_profile
8、以root账户登录mysql,默认是没有密码的,
# mysql -uroot -p
Enter password:
直接回车进入了mysql
语法:
mysql -hlocalhost -uroot -p -h数据库主机 -u用户 -p密码部分,可以直接指定密码,如果不指定,会提示输入密码。 -P端口号(大写P) 使用“-S” 参数,通过指定实例下的socket文件来登录到指定的实例 -D 指定数据库 quit退出连接
修改mysql root用户的密码:
mysqladmin -u root -p password "123456"
Enter Password:(这里输入原来的密码就可以了)
9.ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock 连接不上mysql,默认到/tmp/mysql.sock
10、设置远程主机登录,不建议使用mysql的root登录
use mysql;update user set host='%' where user='root' and host='localhost';flush privileges;
而应该新建一个用户,比如zhao,密码为123456:
mysql>use mysql;GRANT ALL ON *.* TO 'zhao'@'%' IDENTIFIED BY '123456';flush privileges;
11.在阿里云安全组规则添加3306
12.防火墙添加放行3306
mysql日常维护:
show [full] processlist:显示连接数
查看mysql版本:mysql -V