mysql安装转自 http://www.cnblogs.com/azhw/p/5143232.html
亲测验证适用于5.7.10
1. 获得二进制文件
wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.10-linux-glibc2.5-x86_64.tar.gz
2. 加压到 /usr/local/mysql 目录(或者解压到当前目录然后做软链接到/usr/local/mysql)
mkdir /usr/local/mysql
tar -xvf mysql-5.7.10-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.7.10-linux-glibc2.5-x86_64/* /usr/local/mysql/
3. 创建 /usr/local/mysql/data 目录
mkdir /usr/local/mysql/data
4. 创建mysql用户和修改软件的权限
groupadd mysql
useradd -r -g mysql mysql -s /sbin/nologin (创建mysql用户并设置不可登录)
chown -R mysql.mysql /usr/local/mysql/
5. 初始化数据(切换当前目录到/usr/local/mysql)
bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
2016-01-20 02:47:35 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize
2016-01-20 02:47:45 [WARNING] The bootstrap log isn't empty:
2016-01-20 02:47:45 [WARNING] 2016-01-19T18:47:36.732678Z 0 [Warning] --bootstrap is deprecated. Please consider using --initialize instead
2016-01-19T18:47:36.750527Z 0 [Warning] Changed limits: max_open_files: 1024 (requested 5000)
2016-01-19T18:47:36.750560Z 0 [Warning] Changed limits: table_open_cache: 431 (requested 2000)
6. 复制配置文件到 /etc/my.cnf
cp -a ./support-files/my-default.cnf /etc/my.cnf (如果问是否替换选择Y)
7. mysql的服务脚本放到系统服务中
cp -a ./support-files/mysql.server /etc/init.d/mysqld
service mysqld start
cat /root/.mysql_secret
# Password set for user 'root@localhost' at 2016-01-20 03:22:59
Tl:iRfEhRlQ6
bin/mysql -uroot -p (回车后输入Tl:iRfEhRlQ6)
[root@c12 mysql57]# ./bin/mysqladmin -u root -p password (注意这个坑,这个就是password单词)
Enter password:
New password:
Confirm new password:
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.7.8-rc |
+-----------+
1 row in set (0.00 sec)
----------------------------------------新增随笔-----------------------------------------------
依据官方说明5.6以后版本,第一次启动时会在root目录下生产一个随机密码,文件名.mysql_secret。
------------------mysqld: command not found----------------------
[root@Llover www]# mysqld -uroot
-bash: mysqld: command not found
原因:这是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,当然会找不到命令,我们需要做的就是映射一个链接到/usr/bin目录下,相当于建立一个链接文件。
首先得知道mysql命令完整路径,比如我的Linux的mysql的路径是:/usr/local/mysql/bin/mysql,我们则可以这样执行命令:
/usr/local/mysql/bin/mysql -uroot这样执行命令,或者创建一个软链接
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
--------------------设置外网访问----------------------
update user set host = '%' where user ='root';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%’ IDENTIFIED BY '84803368' WITH GRANT OPTION;
flush privileges;
------5.7.18已经没有my.cnf,可以参考下面的cnf
[client]
port=3306
socket=/tmp/mysql.sock_001
[mysqld]
# mysqld基本设置
log-error = /dev/app/mysql/mysql-error.log
pid-file = /dev/app/mysql/mysql.pid
basedir = /dev/app/mysql/mysql-5.7.18-linux-glibc2.5-x86_64
datadir = /dev/app/mysql/data
port=3306 #默认就是3306
log-error = mysql-error.log
socket = /tmp/mysql.sock_001
pid-file = mysql.pid
default-time-zone = '+8:00'
# mysqld二进制日志相关
log-bin=mysql-bin #打开二进制日志功能
server_id=1000001 #打开二进制必须指定serverID
binlog_format = mixed
binlog_cache_size = 4M
max_binlog_cache_size = 8M
max_binlog_size = 1G
# mysqld性能相关
max_connections = 3000 #指定mysql服务所允许的最大连接进程数
max_allowed_packet = 4M #设定在网络传输中一次可以传输消息的最大值,系统默认为1M
sort_buffer_size = 16M #排序缓冲区用来处理类似orderby以及groupby队列所引起的排序,系统默认大小为2M
join_buffer_size = 8M #联合查询操作所使用的缓冲区大小
thread_cache_size = 64 #设置threadcache池中可以缓存连接线程的最大数量,默认为0,该值表示可以重新利用保存在缓存中线程的数量
query_cache_size = 64M #指定mysql查询缓冲区的大小,用来缓冲select的结果,并在下一次同样查询的时候不再执行查询而直接返回结果
query_cache_limit = 4M #只有小于该值的结果才被缓冲,放置一个极大的结果将其他所有的查询结果都覆盖
tmp_table_size = 256M #内存临时表的大小,如果超过该值,会将临时表写入磁盘
default_storage_engine = InnoDB #创建表时默认使用的存储引擎
key_buffer_size = 384M #指定索引缓冲区的大小,内存为4G时刻设置为256M或384M
lower_case_table_names=1
浙公网安备 33010602011771号