http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.15.tar.gz 环境 yum install -y gcc gcc-c++ ncurses-devel groupadd mysql -g 502 useradd -s /sbin/nologin -M mysql -u 502 -g mysql #####mysql5.6安装######## 先安装cmake 然后编译mysql wget http://192.168.3.198/mysql/cmake-3.7.0.tar.gz cd /root/software wget http://192.168.3.198/mysql/mysql-5.6.15.tar.gz tar zxf mysql-5.6.15.tar.gz cd mysql-5.6.15 cmake -DCMAKE_INSTALL_PREFIX=/opt/mysql/ \ -DMYSQL_UNIX_ADDR=/opt/mysql/tmp/mysql.sock \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_EXTRA_CHARSETS=all \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_INNODB_MEMCACHED=1 \ -DWITH_DEBUG=OFF \ -DWITH_ZLIB=bundled \ -DENABLED_LOCAL_INFILE=1 \ -DENABLED_PROFILING=ON \ -DMYSQL_MAINTAINER_MODE=OFF \ -DMYSQL_DATADIR=/opt/mysql/var \ -DMYSQL_TCP_PORT=3306 make make install ###如果报错##### Curses library not found. Please install appropriate package, remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel. Call Stack (most recent call first): cmake/readline.cmake:118 (FIND_CURSES) cmake/readline.cmake:214 (MYSQL_USE_BUNDLED_READLINE) CMakeLists.txt:268 (MYSQL_CHECK_READLINE) 则安装 ncurses-devel 包 yum install ncurses-devel 再删除刚才编译生成的 CMakeCache.txt 文件 rm CMakeCache.txt 再次执行一次cmake ... 一般都可以顺利安装的。 #####加入系统服务###### cp support-files/mysql.server /etc/init.d/mysqld chmod +x /etc/init.d/mysqld chkconfig --add mysqld chkconfig --level 345 mysqld on #### 初始化数据库 ##### cd /opt/mysql/ /opt/mysql/scripts/mysql_install_db --user=mysql --basedir=/opt/mysql --datadir=/opt/mysql/var chown -R mysql.mysql var/ chmod 755 var/ ####################################### ## 配置文件,适合4G/8G内存 vim my.cnf [client] #password = [your_password] port = 3306 socket = /opt/mysql/tmp/mysql.sock # *** Application-specific options follow here *** # # The MySQL server # [mysqld] # *** generic configuration options *** port = 3306 socket = /opt/mysql/tmp/mysql.sock pid-file = /opt/mysql/var/mysqld.pid user = mysql basedir = /opt/mysql datadir = /opt/mysql/var wait_timeout = 10 skip-name-resolve back_log = 100 #skip-networking max_connections = 1000 max_connect_errors = 20 table_open_cache = 2048 #external-locking max_allowed_packet = 16M binlog_cache_size = 1M max_heap_table_size = 128M read_buffer_size = 2M read_rnd_buffer_size = 16M sort_buffer_size = 16M join_buffer_size = 8M thread_cache_size = 64 thread_concurrency = 8 query_cache_size = 64M query_cache_limit = 2M ft_min_word_len = 4 #memlock thread_stack = 192K transaction_isolation = REPEATABLE-READ tmp_table_size = 128M #event_scheduler = ON # *** Replication related settings *** # master-host server-id = 1 log-bin = mysql-bin binlog-ignore-db = mysql,information_schema expire_logs_days = 9 binlog_format = mixed sync_binlog = 0 log_bin_trust_function_creators = 1 # Replication Slave # method one, Use the CHANGE MASTER TO command (recommended) # CHANGE MASTER TO MASTER_HOST=, MASTER_PORT=, # MASTER_USER=, MASTER_PASSWORD= ; # method two #server-id = 2 # (Not recommended to enable the following parameters) #master-host = 192.168.100.10 #master-user = repl #master-password = passwd #master-port = 3306 # (The following parameters can be enabled) #master-connect-retry = 60 #replicate-do-db = 107db_zhs #replicate-ignore-db = mysql,information_schema #replicate-wild-ignore-table = dbname.% #relay-log = relay-bin #read-only #skip-slave-start #log-slave-updates # *** log *** general_log = OFF general_log_file = /opt/mysql/var/mysql.log #log_warnings log-error = /opt/mysql/var/mysql.err slow_query_log slow_query_log_file = /opt/mysql/var/mysql-slow.log long_query_time = 3 # *** MyISAM Specific options *** key_buffer_size = 32M bulk_insert_buffer_size = 64M myisam_sort_buffer_size = 128M myisam_max_sort_file_size = 10G myisam_repair_threads = 1 myisam-recover-options [mysqldump] quick max_allowed_packet = 16M [mysql] prompt = "\\u@\\h: \\d \\R:\\m:\\s>" no-auto-rehash #safe-updates [myisamchk] key_buffer_size = 512M sort_buffer_size = 512M read_buffer = 8M write_buffer = 8M [mysqld_safe] open-files-limit = 8192 #########结束######### #### 配置环境PATH和库PATH ######## 修改root用户(~/.bash_profile)或系统全局(/etc/profile)的环境配置: vi ~/.bash_profile 添加PATH=/opt/mysql/bin:$PATH:$HOME/bin 应用修改: source ~/.bash_profile #### 5.6以上可能不需要了######### vi /etc/ld.so.conf 在最顶部添加一行 /opt/mysql/lib/mysql 确定库搜索路径/opt/mysql/lib/mysql先于其它 ldconfig -v | grep mysql echo $PATH 确定PATH为: /usr/local/bin:/opt/mysql/bin:$PATH #######全局变量添加####### echo "PATH=/opt/mysql/bin:$PATH" >> /etc/profile source /etc/profile echo $PATH 启动: service mysqld start 观察日志: tail -200f /opt/mysql/var/mysql.err 修改密码和安全优化 /opt/mysql/bin/mysqladmin -u root -h 127.0.0.1 password 'new-password' /opt/mysql/bin/mysql_secure_installation ---该步也可以修改密码 ########MySQL修改root密码的多种方法############ 浏览:24009|更新:2013-07-20 15:07 方法1: 用SET PASSWORD命令   mysql -u root   mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('7eFlEVAnhEjtA8ae'); 方法2:用mysqladmin   mysqladmin -u root password "newpass"   如果root已经设置过密码,采用如下方法   mysqladmin -u root password oldpass "newpass" 方法3: 用UPDATE直接编辑user表   mysql -u root   mysql> use mysql;   mysql> UPDATE user SET Password = PASSWORD('gg19900207gg') WHERE user = 'root';   mysql> FLUSH PRIVILEGES; 在丢失root密码的时候,可以这样   mysqld_safe --skip-grant-tables&   mysql -u root mysql   mysql> UPDATE user SET password=PASSWORD("new password") WHERE user='root';   mysql> FLUSH PRIVILEGES; #####新建用户并赋予权限###### 首先以root身份登录到MySQL服务器中。 $ mysql -u root -p 1、新建用户 mysql> CREATE USER 'web' IDENTIFIED BY 'jeX6iIYsos'; 2、赋予MySQL用户权限 一个新建的MySQL用户没有任何访问权限,这就意味着你不能在MySQL数据库中进行任何操作。你得赋予用户必要的权限。以下是一些可用的权限: ALL: 所有可用的权限 CREATE: 创建库、表和索引 LOCK_TABLES: 锁定表 ALTER: 修改表 DELETE: 删除表 INSERT: 插入表或列 SELECT: 检索表或列的数据 CREATE_VIEW: 创建视图 SHOW_DATABASES: 列出数据库 DROP: 删除库、表和视图 运行以下命令赋予"myuser"用户特定权限。 mysql> GRANT ON . TO 'myuser'@'localhost'; 以上命令中, 代表着用逗号分隔的权限列表。如果你想要将权限赋予任意数据库(或表),那么使用星号(*)来代替数据库(或表)的名字。 例如,为所有数据库/表赋予 CREATE 和 INSERT 权限: mysql> GRANT ALTER,SELECT,CREATE, INSERT ON *.* TO 'web'@'%'; 验证给用户赋予的全权限: mysql> SHOW GRANTS FOR 'web'@'%'; 将全部的权限赋予所有数据库/表: mysql> GRANT ALL ON *.* TO 'myuser'@'localhost'; 你也可以将用户现有的权限删除。使用以下命令废除"myuser"帐号的现有权限: mysql> REVOKE ON .
FROM 'myuser'@'localhost'; 为用户添加资源限制 在MySQL中,你可以为单独的用户设置MySQL的资源使用限制。可用的资源限制如下: MAX_QUERIES_PER_HOUR: 允许的每小时最大请求数量 MAX_UPDATES_PER_HOUR: 允许的每小时最大更新数量 MAX_CONNECTIONS_PER_HOUR: 允许的每小时最大连接(LCTT译注:其与 MySQL全局变量: max_user_connections 共同决定用户到数据库的同时连接数量)数量 MAX_USER_CONNECTIONS: 对服务器的同时连接量 使用以下命令为"myuser"帐号增加一个资源限制: mysql> GRANT USAGE ON .
TO 'myuser'@'localhost' WITH ; 在 中你可以指定多个使用空格分隔开的资源限制。 例如,增加 MAXQUERIESPERHOUR 和 MAXCONNECTIONSPERHOUR 资源限制: mysql> GRANT USAGE ON *.* TO 'myuser'@'localhost' WITH MAX_QUERIES_PER_HOUR 30 MAX_CONNECTIONS_PER_HOUR 6; 验证用户的资源限制: mysql> SHOW GRANTS FOR 'myuser'@'localhost; 创建和设置一个MySQL用户最后的一个重要步骤: mysql> FLUSH PRIVILEGES; 如此一来更改便生效了。现在MySQL用户帐号就可以使用了。 ################### ### 屏蔽innodb#### default-storage-engine=MyISAM default-tmp-storage-engine=MYISAM loose-skip-innodb loose-innodb-trx=0 loose-innodb-locks=0 loose-innodb-lock-waits=0 loose-innodb-cmp=0 loose-innodb-cmp-per-index=0 loose-innodb-cmp-per-index-reset=0 loose-innodb-cmp-reset=0 loose-innodb-cmpmem=0 loose-innodb-cmpmem-reset=0 loose-innodb-buffer-page=0 loose-innodb-buffer-page-lru=0 loose-innodb-buffer-pool-stats=0 loose-innodb-metrics=0 loose-innodb-ft-default-stopword=0 loose-innodb-ft-inserted=0 loose-innodb-ft-deleted=0 loose-innodb-ft-being-deleted=0 loose-innodb-ft-config=0 loose-innodb-ft-index-cache=0 loose-innodb-ft-index-table=0 loose-innodb-sys-tables=0 loose-innodb-sys-tablestats=0 loose-innodb-sys-indexes=0 loose-innodb-sys-columns=0 loose-innodb-sys-fields=0 loose-innodb-sys-foreign=0 loose-innodb-sys-foreign-cols=0 来源: http://www.jb51.net/article/50387.htm