(我这里就是32位系统的服务器毛起安装64位的mysql、执行到msyqld初始化的时候报-bash: ./mysqld: cannot execute binary file
)
查看系统是32还是64位的命令:
getconf LONG_BIT
到mysql官网下载mysql编译好的二进制安装包,在下载页面Select Platform:选项选择linux-generic,然后把页面拉到底部,64位系统下载Linux - Generic (glibc 2.5) (x86, 64-bit),32位系统下载Linux - Generic (glibc 2.5) (x86, 32-bit)
chown -R root /home/
chmod -R 755 /home/
chown -R root /usr/local/mysql
chmod -R 755 /usr/local/mysql
[client]
port = 3306
socket = /home/mysql_socket/mysql.sock
default-character-set = utf8
[mysqld]
port = 3306
socket = /home/mysql_socket/mysql.sock
pid-file = /home/mysql_pid/mysqld.pid
basedir = /usr/local/mysql
datadir = /home/mysql_data
log-error = /home/mysql_log/error.log
slow_query_log_file = /home/mysql_log/slow.log
tmpdir = /home/mysql_tmp/
server-id = 1
log_bin = /home/mysql_bin/mysql-bin
binlog_format = mixed
#超过7天的binlog删除
expire_logs_days = 7
user = root
max_connections = 30
character-set-server = utf8
default-storage-engine = INNODB
sql_mode = STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
max_allowed_packet=512M
slow_query_log = ON
long_query_time = 2
log_queries_not_using_indexes=0
# 为了安全考虑,关闭该功能
#local-infile=0
default-time_zone = '+8:00'
#关闭mysql的TCP/IP连接方式
#skip-networking
#限制远程访问
#bind-address = 127.0.0.1
log_output=file
#在5.7中,通过ssl方式连接mysql被作为默认和推荐。如果你并不需要(比如web端和db端同一台服务器,db服务器处于web端内网等),就可以不用使用ssl方式。
skip-ssl
#无密码登录(忘记root密码时打开)
# skip-grant-tables
#登陆失败次数限制(需要先安装插件、再开启)
#connection-control-failed-connections-threshold=5
#限制重试时间,此处为毫秒,注意按需求换算 (需要先安装插件、再开启)
#connection-control-min-connection-delay=1800000
[mysql]
#自动补全表、列名
auto-rehash
[mysqldump]
quick
#它强制 mysqldump 从服务器查询取得记录直接输出而不是取得所有记录后将它们缓存到内存中
max_allowed_packet = 512M
#限制server接受的数据包大小;指代mysql服务器端和客户端在一次传送数据包的过程当中数据包的大小
net_buffer_length = 16384
#TCP/IP和套接字通信缓冲区大小,创建长度达net_buffer_length的行
/usr/local/mysql/bin/mysqld --initialize --user=root --datadir=/home/mysql_data --basedir=/usr/local/mysql
初始密码在error.log中查看
#JDK环境变量
JAVA_HOME=/usr/local/java
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
#mysql环境变量
MYSQL_HOME=/usr/local/mysql
PATH=$PATH:$MYSQL_HOME/bin
export PATH MYSQL_HOME
如果不按下面方式启动会报错:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)
/usr/local/mysql/support-files/mysql.server start
alter user 'root'@'localhost' identified by '123456';
use mysql;
update user set user.Host='%' where user.User='root';
flush privileges;
1、将服务文件拷贝到init.d下,并重命名为mysql
[root@localhost local]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
2、赋予可执行权限
[root@localhost local]# chmod +x /etc/init.d/mysqld
3、添加服务
[root@localhost local]# chkconfig --add mysqld
4、显示服务列表
[root@localhost local]# chkconfig --list
5、重启服务器
[root@localhost local]# reboot
#查看防火墙状态
systemctl status firewalld
#关闭防火墙
systemctl stop firewalld
如果防火请关闭了还不能远程连接,请继续执行下下面得操作
1.修改/etc/my.cnf 文件
找到bind-address = 127.0.0.1这一行
改为bind-address = 0.0.0.0即可
2.支持root用户允许远程连接mysql数据库
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
flush privileges;