IT评测·应用市场-qidao123.com

标题: mysql5.7.44 arm 源码编译安装 [打印本页]

作者: 小小小幸运    时间: 11 小时前
标题: mysql5.7.44 arm 源码编译安装
一、:下载源码:mysql官网:MySQL :: MySQL Downloads
        

  1. #####下载mysql安装包 :
  2. 网址:https://www.mysql.com/
  3. 可在页面下载后上传或直接下载。
  4. 官网地址首页,拉到最底部,找到社区版本下载:
  5. [root@localhost home]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-5.7.44.tar.gz
  6. [root@localhost home]# tar -zxvf mysql-boost-5.7.44.tar.gz
  7. ######boost安装包
  8. 网址:http://www.boost.org/users/download/
  9. 安装mysql5.7及以上版本,要依赖boost,
  10. 5.744需要1.59.0版本
  11. [root@localhost home]# wget http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
  12. [root@localhost home]# tar -zxf boost_1_59_0.tar.gz
  13. [root@localhost home]# mv boost_1_59_0/ /usr/local/
  14. ####### 下载必备编译工具插件及依赖
  15. yum install -y gcc gcc-c++
  16. yum install -y glibc libtool
  17. yum install -y make cmake
  18. yum install -y ncurses ncurses-devel
  19. yum install -y libtirpc libtirpc-devel
  20. yum install -y libarchive
  21. yum install -y openssl openssl-devel
  22. yum install -y rpcgen
  23. ---
  24. yum install -y libaio libaio-devel
  25. yum install -y bison-devel bison perl perl-devel
复制代码
2:卸载原有的数据库文件
  1. ####卸载mariadb、mysql
  2. [root@mysql5 ~]# rpm -qa mariadb*
  3. //mariadb-libs-5.5.44-2.el7.centos.x86_64
  4. [root@template tools]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64
  5. [root@template tools]# rpm -qa | grep mariadb
  6. #####系统环境:
  7. [root@mysql5 ~]# cat /etc/redhat-release
  8. //CentOS Linux release 7.2.1511 (Core)
  9. [root@mysql5 ~]# uname -r
  10. //3.10.0-327.el7.arm
复制代码
二、编译安装mysql
  1. #####文件目录创建
  2. mkdir -p /home/data/mysql        # mysql安装路径
  3. mkdir -p /home/data/mysql_data   # mysql数据路径
  4. mkdir -p /home/data/mysql_tmp    # mysql缓存路径
  5. mkdir -p /home/data/mysql_log    # mysql日志路径
  6. mkdir -p /var/run/mysql          # mysql pid路径
  7. mkdir -p /var/log/mysql          # mysql log路径
  8. #####配置文件位置
  9. /etc/my.ini
  10. 服务文件位置
  11. /etc/init.d/mysqld  (复制于/home/data/mysql/support-files/mysql.server)
  12. ######添加mysql用户和用户组
  13. 先检查 mysql 用户和用户组有没有被使用
  14. cat /etc/group | grep mysql
  15. cat /etc/passwd | grep mysql
  16. sudo groupadd mysql
  17. sudo useradd -r -g mysql -s /bin/false mysql
  18. 注意:
  19. -s /sbin/nologin 用户不能登录系统
  20. -M 不创建用户的home家目录
  21. -g 指定用户登录组的gid或组名
  22. ####编译及安装
  23. #进入mysql解压目录执行cmake 命令,成功后依次执行编译及安装make & make install
  24. cmake编译参数:需为同一行,具体路径请自行更改
  25. cmake \
  26. -DCMAKE_INSTALL_PREFIX=/home/data/mysql \
  27. -DMYSQL_DATADIR=/home/data/mysql_data \
  28. -DWITH_BOOST=/usr/local/boost_1_59_0 \
  29. -DSYSCONFDIR=/etc \
  30. -DWITH_INNOBASE_STORAGE_ENGINE=1 \
  31. -DWITH_PARTITION_STORAGE_ENGINE=1 \
  32. -DWITH_FEDERATED_STORAGE_ENGINE=1 \
  33. -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
  34. -DWITH_MYISAM_STORAGE_ENGINE=1 \
  35. -DENABLED_LOCAL_INFILE=1 \
  36. -DENABLE_DTRACE=0 \
  37. -DDEFAULT_CHARSET=utf8 \
  38. -DDEFAULT_COLLATION=utf8_general_ci \
  39. -DWITH_EMBEDDED_SERVER=1
  40. 注:-DWITH_BOOS参数就是第四步骤的解压后路径,注意要写到boost目录, 说明:如果编译出错,没有通过,检测参数后重新运行配置,需要删除CMakeCache.txt文件
  41. # make clean
  42. # rm -f CMakeCache.txt
  43. 参数从哪里找:
  44. http://www.mysql.com→→Documentation→→选择对应的版本(5.7)Installation & Upgrades→→Installing MySQL from Source →→MySQL Source-Configuration Options
  45. 直接点击url: https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html
复制代码
三、mysql 具体设置
  1. 3.1 my.cnf 默认是没有的,需要手动输入
  2. //编辑/etc/my.conf文件
  3. #/etc/my.cnf,仅供参考(用于生产还需要调优)
  4. [mysqld]
  5. basedir = /home/data/mysql
  6. datadir = /home/data/mysql_data
  7. tmpdir = /home/data/mysql_tmp
  8. log-error = /home/data/mysql_log/error.log
  9. #pid-file = /home/data/mysql/data/my.pid
  10. port = 3306
  11. default_storage_engine = InnoDB
  12. sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
  13. innodb_autoinc_lock_mode = 2
  14. lower_case_table_names = 1
  15. character-set-client-handshake = FALSE
  16. character_set_server = utf8mb4
  17. skip-name-resolve
  18. max_connections=2000
  19. max_connect_errors = 1000000
  20. max_allowed_packet = 1G
  21. explicit_defaults_for_timestamp = true
  22. default-time_zone='+8:00'
  23. innodb_log_file_size = 2000M
  24. innodb_log_buffer_size = 2000M
  25. innodb_strict_mode = 0
  26. connect_timeout = 3600
  27. wait_timeout = 8600
  28. interactive_timeout = 3600
  29. innodb_lock_wait_timeout = 10
  30. slave-skip-errors  = 1032,1062
  31. slow_query_log = on
  32. slow_query_log_file = /home/data/mysql_log/slow-query-log.log
  33. long_query_time = 1
  34. log-queries-not-using-indexes
  35. log-slow-admin-statements
  36. log-slow-slave-statements
  37. server-id = 100
  38. log-bin = log-bin
  39. binlog-format = ROW
复制代码
3.2 编辑环境变量
  1. 3.2 编辑环境变量
  2. [root@localhost ~]# vi /etc/profile
  3. #行尾添加
  4. export PATH=$PATH:/home/data/mysql/bin/
  5. [root@localhost ~]# source /etc/profile
  6. 3.3 添加配置文件、设置开机自启
  7. #添加配置文件
  8. [root@localhost home]# cp /home/data/mysql/support-files/mysql.server  /etc/init.d/mysqld
  9. #设置开机自启
  10. [root@localhost home]# chmod +x /etc/init.d/mysqld
  11. [root@localhost home]# chkconfig --add mysqld
  12. [root@localhost home]# chkconfig mysqld on
  13. systemctl enable mysqld.service
  14. 成功后可用 systemctl start mysqld 来启动。
  15. 3.4  赋权
  16. chown -R mysql:mysql /home/data/mysql
  17. chown -R mysql:mysql /home/data/mysql_data
  18. 3.5 初始化
  19. cd /home/data/mysql/bin
  20. ##5.6
  21. ./mysql_install_db  --initialize-insecure  --user=mysql  --defaults-file=/etc/my.cnf
  22. --basedir=/home/data/mysql --datadir=/home/data/mysql_data
  23. ##5.7
  24. ./mysqld  --initialize-insecure  --user=mysql  --basedir=/home/data/mysql --datadir=/home/data/mysql_data
  25. 启动:service mysqld start
  26. 3.6 更改密码
  27. (1)以管理员身份打开“命令行窗口”,输入mysql -uroot -p并按下回车键
  28. (2)在弹出Enter password: 时,继续按下回车键,即可登录mysql
  29. (3)输入命令use mysql;
  30. (4)输入命令ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码'; (注意末尾要有分号)
  31. (5)输入命令flush privileges;
  32. (6)输入命令exit;
  33.   (7) 测试密码
  34. 3.7 开通远程访问权限
  35.   1.改表法:
  36. 如果你的MySQL帐号仅允许在本地登陆,而不允许远程登陆,你可以通过更改 \mysql\ 数据库中的\user\ 表来修改 \host\ 项。
  37. -在本地MySQL中,执行以下命令:
  38. mysql -u root -p
  39. -进入 \mysql\ 数据库:
  40. use mysql;
  41. -修改 \user\ 表中的 \host\ 项,将 \localhost\ 改为 %\ (表示任何主机):
  42. update user set host = '%' where user = 'root';
  43. -查询修改后的 \host\ 和 \user\ 信息:
  44. select host, user from user;
  45. 2.授权法:
  46. 通过授权,你可以指定允许远程连接MySQL的用户和主机。
  47. -如果要允许名为 myuser 的用户使用密码 mypassword 从任何主机连接到MySQL服务器,执行以下命令:
  48. GRANT ALL PRIVILEGES ON . TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
  49. -如果要允许用户 myuser 从IP为 192.168.1.6 的主机连接到MySQL服务器,使用密码 mypassword,执行以下命令:
  50. GRANT ALL PRIVILEGES ON . TO 'myuser'@'192.168.1.6' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
  51. 3.使修改生效:
  52. 在修改授权后,需要刷新MySQL权限,使修改生效:
  53. FLUSH PRIVILEGES;
  54. 4.退出MySQL服务器:
  55. 当完成所有配置后,退出MySQL服务器:
  56. EXIT;
  57. 通过以上步骤,你就可以允许远程主机以指定用户的身份连接到MySQL服务器了。
  58. 查看端口:  ss -lntup|grep 3306
  59. 查看mysql默认密码: cat /root/.mysql_secret
  60. #############防火墙#####
  61. Linux系统通常使用iptables或firewalld作为防火墙来控制网络流量。本文将介绍如何在两种防火墙下添加端口。
  62. 使用iptables添加端口
  63. iptables是Linux内核中提供的防火墙,可以用来控制进出系统的网络流量。
  64. 添加端口步骤:
  65. 查看当前iptables规则:
  66. iptables -L
  67. 添加端口规则:
  68. iptables -A INPUT -p tcp --dport 端口号 -j ACCEPT
  69. 例如,添加80端口(HTTP服务):
  70. iptables -A INPUT -p tcp --dport 80 -j ACCEPT
  71. 参数说明:
  72. -A INPUT:将规则添加到INPUT链中。INPUT链用于控制进入系统的网络流量。
  73. -p tcp:指定协议为TCP。
  74. --dport 端口号:指定端口号。
  75. -j ACCEPT:接受该规则匹配的流量。
  76. 保存iptables规则:
  77. iptables-save
  78. 注意:
  79. 添加iptables规则后,需要重启防火墙服务才能使规则生效。
  80. iptables规则是临时的,系统重启后会消失。要永久保存规则,需要使用iptables-save命令将规则保存到配置文件中。
  81. 使用firewalld添加端口
  82. firewalld是CentOS 7等系统默认使用的防火墙,可以提供更友好的管理界面。
  83. 添加端口步骤:
  84. 查看当前firewalld规则:
  85. firewall-cmd --list-all
  86. 添加端口规则:
  87. firewall-cmd --permanent --add-port=端口号/tcp
  88. 例如,添加80端口(HTTP服务):
  89. firewall-cmd --permanent --add-port=80/tcp
  90. 参数说明:
  91. --permanent:将规则永久保存。
  92. --add-port=端口号/tcp:添加端口号和协议。
  93. 重新载入firewalld规则:
  94. firewall-cmd --reload
  95. 注意:
  96. 添加firewalld规则后,需要重新载入规则才能使规则生效。
  97. firewalld规则是永久的,即使系统重启后也会保留。
复制代码






免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4